王英志,杨 佳,韩太林
(1. 长春理工大学 电子信息工程学院,长春 130022;2. 吉林建筑工程学院 电气与电子信息工程学院,长春 130021)
目前,RS232接口和CAN总线接口广泛应用于工业设备之间的通信。它们各有特点,应用在不同领域。RS232通信距离短,接口容易损坏。CAN总线具有多点通信、组网方便,传输距离远,通信实时性好,纠错能力强,成本低等特点,能更好地匹配和协调各个控制系统[1]。基于两种接口特点,本文介绍一种实现RS232接口设备与CAN总线设备进行通信的转换器,更好的解决用户在地域、通信网络、接口协议等方面的矛盾。
RS232-CAN通信协议转换器设计,主要是完成RS232与CAN总线之间的通信协议转换,实现数据的互联通信。在通信过程中,为了使系统具有通用性和稳定性,对供电电源、通信隔离、防雷电等方面进行了特殊设计。系统原理框图如图1所示。
图1 系统原理框图
选用意法半导体公司ARM Co rtex™-M 3核的32位STM 32F103C8单片机,负责系统的整体运行。单片机特点为:最大时钟频率为72MHz,3个16位定时器,其内部集成CAN2.0控制器、USART接口和USB2.0全速接口等,调试模式为SWD和JATG接口。单片机的PA9和PA10引脚用来做串口数据的收发,PA11和PA12引脚用来做CAN数据的收发。
电源模块设计框图如图2所示。选用LM 2574-ADJ实现输入交流或者直流的电压范围为3.5V-40V,产生5V电压,为隔离电源和ASM 1117-33供电。ASM 1117-33产生3.3V电压为单片机供电;隔离电源选用MORNSUM公司的IB0505LS-1W,产生5V隔离电压为CAN收发器ISO1050DUB副边供电。
图2 电源模块设计框图
单片机STM 32F103C8集成CAN2.0控制器。CAN收发器选择TI公司的ISO1050DUB,把CAN控制器的逻辑电平转换为CAN总线的差分电平。ISO1050DUB的主要特点为:具有2500-VRMS电气隔离;提供-27V到40V的总线故障保护,增强系统的抗干扰能力及可靠性;符合ISO11898标准,可以与其他ISO11898标准的CAN收发器互连。CAN总线接口电路设计如图3所示,与文献[2]和[3]相比较,该电路具有电路简单、PCB尺寸小、集成度高、放静电、抗雷电的隔离功能等优点。
在使用过程中,雷电可能对转换器中其他电子器件及数据的实时、可靠通信产生很大的影响[4]。因此参考浪拓电子技术有限公司生产的浪涌保护器件瞬态抑制二极管NUP2105、气体放电管BA401N等,设计转换器的通信系统。NUP2105是一个双向瞬态电压抑制器,用来保护高速和容错CAN总线中的收发器免受EM I和ESD的影响。在图3中,BA401N、NUP2105吸收瞬态电压的能量,以避免损坏CAN收发器。NUP2105设计为双向配置,防止在长电缆系统中由于共模电压失调而对正常的数据线路信号造成钳位,NUP2105L的小电容适合用于数据传输速率高达1Mb it/s的系统,图中SMD014为自恢复保险丝。设计达到抑制ESD和EM I的行业标准,通过可靠接地,在雷电等恶劣环境下,起到很好的保护作用。
图3 CAN总线接口电路图
RS232协议用正负电压表示逻辑状态,与TTL以高低电平表示逻辑状态的规律不同。为了实现计算机接口或者终端为TTL器件连接,必须在RS232接口与TTL电路之间进行电平和逻辑关系的变换。本设计采用的RS232电平转换器为MAXIM公司的MAX3232,电路设计如图4所示。为了保证安全的通信隔离,MAX3232与CAN收发器ISO1050DUB的原边共用一个电源。
图4 RS232接口电路图
程序是在KEIL公司Keil u Vision4环境下开发的,子程序包括:UART初始化,CAN初始化,软件FIFO初始化,UART串口接收中断服务程序,UART发送中断服务程序,CAN接收中断服务程序,CAN发送中断服务程序,参数设置、存储子程序,参数存储地址遍历程序等。主程序流程图如图5所示。
图5 主程序流程图
由于STM 32的UART没有缓存寄存器,而其CAN控制器在接收端有2个3级深度的FIFO、发送端有3个发送邮箱。UART是以字节为单位发送数据,CAN是以可配置的多字节(小于9个字节)组成的帧为发送单位。所以有必要把接收到的CAN数据打包给串口发给上位机。另外结合CAN传输速率可最大化利用内存内建FIFO[5]。在UART向CAN发送数据的时候先打包在FIFO,再传递给CAN控制器,UART在接收的时候,从FIFO中依次读出解包的数据。UART发送数据流程图如图6所示。
图6 UART发送数据流程图
UART接口软件包括:UART初始化、UART发送数据程序、UART接收数据程序。UART初始化包含:数据位数、停止位位数、校验模式、传输波特率、工作模式等。CAN接口程序包括:CAN初始化、CAN数据发送程序、CAN数据接收程序。CAN初始化包含:地址设定、波特率设置、标识符过滤设置、工作模式等。FIFO初始化是在总程序初始化的时候建立的。根据UART、CAN双方的传输速度及CAN数据格式和打包模式可以最大限度的利用内存内建FIFO。
转换器的硬件与软件设计好后,对转换器进行实际应用。在物联网的智能农业应用中,CAN总线设备组成CAN网络对环境的温湿度、土壤PH值等参数进行实时检测,把检测数值传送给中央控制室的PC机,PC机根据参数数值控制CAN网络中的执行单元,对土壤灌溉或者通风等。CAN网络与PC机进行通信中,使用了所设计的CAN总线与RS232的协议转换器。使用中将串口速率设置为每秒57.6kbit,CAN总线接口的通信速度设置为每秒125kb it。经过实际验证,在CAN系统的发送速率在每秒100帧以下时,能够保证上位机接收到所有的数据帧,而不发生丢帧事故。
本文介绍了一种基于STM 32单片机的RS232-CAN总线通信协议转换器,从硬件和软件两个方面对其进行了介绍。转换器能够实现串口协议与CAN总线协议间的转换,能够实现多点的CAN总线网络数据与单点的串口数据进行透明传输。在物联网的智能农业应用中,取得很好效果,具有一定工程意义。该转换器体积小,成本低,便于实现,易于推广。
[1] 饶运涛,邹继君,王进宏,等.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2007:13-14.
[2] 杨鹏,王晓雷,许晓云,等.RS-232-CAN智能转换卡的设计[J].仪表技术与传感器,2009(12):97-98,107.
[3] 胡凤忠,罗志年,廖亦凡.基于CAN总线的密集烤房群远程监控系统[J].仪表技术与传感器,2012(12):61-63.
[4] 张珣,叶海龙.基于CAN总线的船舶数据通信系统[J].机电工程,2010,27(3):89-92.
[5] 王爱林,刘荣华,严顶.基于STM 32的CAN-USB转换模块[J].仪表技术与传感器,2012(6):69-70,73.