论文部分内容阅读
【摘要】CAN总线以其独特的技术优势,在汽车电子、自动控制、智能大厦、电力系统、安防监控等各领域,得到了大力的应用,本文介绍了32位高速ARM7单片机LPC2292在CAN总线中的节点收发器电路设计,及其程序设计。
【关键词】CAN;现场总线;ARM7;LPC2292
1. 引言
现场总线的工业过程智能自动化仪表和现代总线的开放自动化系统构成了新一代全开放自动化控制糸统的体系结构。目前国际上公认的现场总线有10多种,各有其特点,并在一定范围内得刭应用。 其CAN总线网络是炙手可热的技术,目前它正在汽车电子、工业网络、医疗设备、轨道交通信号、楼宇控制及其它众多系统中得到应用。
2. 相关技术
2.1 CAN总线
CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。
CAN属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。CAN 即控制器局域网络,属于工业现场总线的范畴。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。
2.2 ARM7单片机LPC2292
LPC2292/LPC2294是一款基于16/32位ARM7TDMI-S,并支持实时仿真和跟踪的CPU,并带有256 k字节(kB)嵌入的高速Flash存储器。128位 宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16位Thumb模式将代码 规模降低超过30%,而性能的损失却很小。
LPC2292/LPC2294采用144脚封装、极低的功耗、2/4路高级CAN通道、PWM输出以及多达9个的外部中断,这款微控制器特别适合自动化、工业控制、医疗系统、访问控制和故障容限维护总线等应用领域。由于内置了宽范围的串行通信接口,它们也非常适合于通信网关、协议转换器、嵌入式软件调制解调器以及其它各种类型的应用。
3. CAN节点设计
实际的 CAN通讯单元电路图,电路结构为: LPC2292(内部集成CAN控制器的32位ARM7 芯片)+隔离CAN收发器(CTM Module)。
使用LPC2292的UART2作为CAN收发之用,ARM-CTX2\ARM-RTX2口线经光电隔离后,通过D2(82C250)接入外部CAN总线。
采用两個高速光耦D3、D4(6N137),实现电气上的隔离,一个电源隔离模块(+5V转+5V)M1,实现电源上的隔离,并计算电阻值的大小确定阻值后搭建出合理的收发器隔离电路。
4. 软件设计
CAN控制器只需要进行少量的配置就可以进行通信。
程序清单:CAN控制器发送示例程序
#include "IncludeCan.H"
INT32U statue;
int main()
{
InitCAN (CAN1);
ConfigAFReg();
CANRcvCyBufApp[CAN1].RcvBuf[0].CANRcvFS.Bits.DLC = 8;//数据长度
CANRcvCyBufApp[CAN1].RcvBuf[0].CANRcvFS.Bits.RTR = 0;//远程帧,数据帧标志 (1 为远程帧
CANRcvCyBufApp[CAN1].RcvBuf[0].CANRcvFS.Bits.FF = 0; //标准帧,扩展帧标志 (1 为扩展帧
CANRcvCyBufApp[CAN1].RcvBuf[0].RxCANID.Bits.ID = 0;//帧ID
CANRcvCyBufApp[CAN1].RcvBuf[0].RDA.Word = 0x44332211;//前四字节数据
CANRcvCyBufApp[CAN1].RcvBuf[0].RDB.Word = 0x88776655;//后四字节数据
//结束初始化
while (1)
{
statue = CANSendData(CAN1,SIG,&CANRcvCyBufApp[CAN1].RcvBuf[0]);
if (statue == 0)
CANRcvCyBufApp[CAN1].RcvBuf[0].RxCANID.Bits.ID++;
}
}
5. 小结
以上为LPC2292+CTM隔离CAN收发器构成的CAN节点,隔离CAN收发器的优点是:简化设计,稳定可靠,能够实现CAN总线上各节点在电气、电源上完全独立和隔离。
参考文献
[1]《现场总线CAN原理与应用技术》,作者:饶运涛;北京航空航天大学出版社出版
作者简介:范琼英,女(1981.3.23—),重庆涪陵人,助理讲师,研究方向:电子技术教育
【关键词】CAN;现场总线;ARM7;LPC2292
1. 引言
现场总线的工业过程智能自动化仪表和现代总线的开放自动化系统构成了新一代全开放自动化控制糸统的体系结构。目前国际上公认的现场总线有10多种,各有其特点,并在一定范围内得刭应用。 其CAN总线网络是炙手可热的技术,目前它正在汽车电子、工业网络、医疗设备、轨道交通信号、楼宇控制及其它众多系统中得到应用。
2. 相关技术
2.1 CAN总线
CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。
CAN属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。CAN 即控制器局域网络,属于工业现场总线的范畴。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。
2.2 ARM7单片机LPC2292
LPC2292/LPC2294是一款基于16/32位ARM7TDMI-S,并支持实时仿真和跟踪的CPU,并带有256 k字节(kB)嵌入的高速Flash存储器。128位 宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16位Thumb模式将代码 规模降低超过30%,而性能的损失却很小。
LPC2292/LPC2294采用144脚封装、极低的功耗、2/4路高级CAN通道、PWM输出以及多达9个的外部中断,这款微控制器特别适合自动化、工业控制、医疗系统、访问控制和故障容限维护总线等应用领域。由于内置了宽范围的串行通信接口,它们也非常适合于通信网关、协议转换器、嵌入式软件调制解调器以及其它各种类型的应用。
3. CAN节点设计
实际的 CAN通讯单元电路图,电路结构为: LPC2292(内部集成CAN控制器的32位ARM7 芯片)+隔离CAN收发器(CTM Module)。
使用LPC2292的UART2作为CAN收发之用,ARM-CTX2\ARM-RTX2口线经光电隔离后,通过D2(82C250)接入外部CAN总线。
采用两個高速光耦D3、D4(6N137),实现电气上的隔离,一个电源隔离模块(+5V转+5V)M1,实现电源上的隔离,并计算电阻值的大小确定阻值后搭建出合理的收发器隔离电路。
4. 软件设计
CAN控制器只需要进行少量的配置就可以进行通信。
程序清单:CAN控制器发送示例程序
#include "IncludeCan.H"
INT32U statue;
int main()
{
InitCAN (CAN1);
ConfigAFReg();
CANRcvCyBufApp[CAN1].RcvBuf[0].CANRcvFS.Bits.DLC = 8;//数据长度
CANRcvCyBufApp[CAN1].RcvBuf[0].CANRcvFS.Bits.RTR = 0;//远程帧,数据帧标志 (1 为远程帧
CANRcvCyBufApp[CAN1].RcvBuf[0].CANRcvFS.Bits.FF = 0; //标准帧,扩展帧标志 (1 为扩展帧
CANRcvCyBufApp[CAN1].RcvBuf[0].RxCANID.Bits.ID = 0;//帧ID
CANRcvCyBufApp[CAN1].RcvBuf[0].RDA.Word = 0x44332211;//前四字节数据
CANRcvCyBufApp[CAN1].RcvBuf[0].RDB.Word = 0x88776655;//后四字节数据
//结束初始化
while (1)
{
statue = CANSendData(CAN1,SIG,&CANRcvCyBufApp[CAN1].RcvBuf[0]);
if (statue == 0)
CANRcvCyBufApp[CAN1].RcvBuf[0].RxCANID.Bits.ID++;
}
}
5. 小结
以上为LPC2292+CTM隔离CAN收发器构成的CAN节点,隔离CAN收发器的优点是:简化设计,稳定可靠,能够实现CAN总线上各节点在电气、电源上完全独立和隔离。
参考文献
[1]《现场总线CAN原理与应用技术》,作者:饶运涛;北京航空航天大学出版社出版
作者简介:范琼英,女(1981.3.23—),重庆涪陵人,助理讲师,研究方向:电子技术教育