CAN-RS232通信转换模块的设计与实现
摘要:设计了一个结构简单、使用方便、应用面广的CAN节点与RS232串口通信转换模块.详细介绍了该模块的工作原理和实现方法,即通过软硬件相结合实现电平标准和通信协议的转换,从而完成两者之间的信息传输.
本文引用地址:http://www.amcfsurvey.com/article/157636.htm1 引言
RS232作为标准的计算机串行接口已被广泛使用,与此同时,随着现场总线技术的飞速发展,具有实时性好、可靠性高、结构简单等优点的CAN总线在测控系统中也越来越多地被采用。但由于两者的总线结构、通信协议及传输特点各不相同,因而给不同设备之间的连接带来诸多不便,因此,如何以最简单的方式实现CAN节点与RS232串行口的通信就成为工程实践中一个不可回避的问题。
本文采用典型的不具备CAN通信能力的AT89C51单片机作为微处理器,设计了一个简单、实用的通信转换模块。该通信转换模块具有体积小、结构简单、通用性好、使用方便等特点。
2 工作原理
CAN-RS232通信转换模块通过硬件电路的电平标准转换和软件编程的通信协议转换实现相关功能。
2.1 电平标准转换
RS232采用的不是TTL电平的接口标准,而是负逻辑,即逻辑“1”为-3 V―-15 V:逻辑“0”为+3 V-+15 V;而CAN总线是采用“显性”和“隐性”两个互补的逻辑值表示“0”和“1”,其信号是以两线之间的“差分”电压形式出现的。这样导致两总线之间的信号电压不匹配.无法直接进行正常的通信,因此.需要相应的硬件接口电路实现电平标准转换。
2.2 通信协议转换
RS232通信属于异步串行通信,一般为两点传输 其每帧的数据格式通常为:起始位+数据位+奇偶校验位(可省略)+停止位;每个数据包的格式通常为:数据包头+数据字节+校验和(溢出不计)。而CAN通信属于总线通信,可以同时存在多个节点,因此通信协议相对也比较复杂,这里以标准帧传输为例,其数据格式通常如表1所列。因此,需要软件处理实现通信协议的转换。
3 硬件设计
模块采用Atmel公司生产的AT89C51型单片机作为微处理器.采用SJA1000和TJA1050分别作为CAN控制器和驱动器.采用MAX202E作为RS232串行接口驱动器,其硬件连接电路图如图1所示。
AT89C51采用外接晶体振荡器提供时钟输入.通过并行地址/数据复用的方式访问CAN控制器SJA1000.P2.0引脚作为片选端口;SJA1000作为CAN控制器,也采用单独的外部时钟输入,由于集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的帧处理, 其地址为0x00-0xFF:TJA1050作为CAN控制器和物理总线之间的接口.采用高速工作模式,用于提供总线的差动发送能力和CAN控制器差动接收能力;MAX202E用于实现RS232电平到微控制器接口电路的TTL电平转换。
数字通信相关文章:数字通信原理
通信相关文章:通信原理
评论