用AT89C52单片机实现RS422到CAN总线的转换
CAN总线刚好以其高性能、高可靠性及独特的设计赢得了工业界的高度重视。例如,奔驰S型轿车上采用的就是CAN总线系统,美国商用车辆制造商们也将注意力转向了CAN总线,美国一些企业已将CAN作为内部总线应用在生产线和机床上。同时,由于CAN总线可以提供较高的安全性,因此在医疗领域、纺织机械及电梯控制中也得到了广泛应用。可见,实现RS422总线和CAN总线之间的转换非常有必要。
2硬件设计
2.1总体设计分析
在该系统中,采用AT89C52单片机。RS422总线传输过来的信号经过收发器后进入89C52,处理后送到CAN控制器中,然后到收发器,最后由CAN出口发出。为了保证系统的安全工作,在CAN控制器上加了一个“看门狗”。总体设计框图如图1所示。
![]() |
2.2CAN控制器与CPU接口设计
对于CPU来说,CAN控制器是确保双方独立工作的存贮器映象外围设备。CAN控制器与外部CPU的接口是通过控制器接口逻辑(CIL)实现的, AT89C52 CPU通过将地址总线(AB)和数据总线(DB)连接到CIL上来完成与CAN控制器之间的信息交换,不需要专门的控制总线(CB),CPU与82C200之间的状态、控制和命令信号的交换在CAN控制器中完成。
2.3电子看门狗设计
为了提高系统的抗干扰性能,采用X25045来做一个电子看门狗。X25045把3种常用的功能:看门狗定时器、电压监视和 E2PROM组合在单个封装之内。这种组合降低了系统成本,并减少了对电路板空间的要求。看门狗定时器对微控制器提供了独立的保护系统。当系统出现故障时,在可选的超时周期( timeout interval )之后, X25045 看门狗将以 RESET 信号作出响应。
3软件设计
3.1总体设计思想
CAN总线系统的初始化设计是软件设计的关键,在初始化之前,应设置输出控制寄存器(OCR)的复位请求位为高,再设置其他寄存器。命令寄存器(CMR)控制缓存器的收发状态;中断寄存器(IR)、状态寄存器(SR)查询82C200的工作状态;接收码寄存器(ACR)设定工作地址;接收屏蔽寄存器(AMR)设定工作形式;总线定时寄存器(BTR0、BTR1)设定工作频率、采样频率;输出控制寄存器(OCR)一般为正常输出方式,最后应使复位请求位从高变低,使CAN控制器进入正常工作状态。主程序框图如图2。
![]() |
3.2转换主程序设计如下:
|
4结语
CAN总线以其高性能、高可靠性及其独特的设计越来越受到人们的重视,并被公认为最有前途的总线之一。把RS422转换到CAN正是适应了这一趋势,期望有更多的智能电子产品设计者加入到这一领域的应用研究中来。
文章版权归西部工控xbgk所有,未经许可不得转载。