王英志,楊 佳,韓太林
(1. 長春理工大學 電子信息工程學院,長春 130022;2. 吉林建筑工程學院 電氣與電子信息工程學院,長春 130021)
目前,RS232接口和CAN總線接口廣泛應用于工業(yè)設備之間的通信。它們各有特點,應用在不同領(lǐng)域。RS232通信距離短,接口容易損壞。CAN總線具有多點通信、組網(wǎng)方便,傳輸距離遠,通信實時性好,糾錯能力強,成本低等特點,能更好地匹配和協(xié)調(diào)各個控制系統(tǒng)[1]。基于兩種接口特點,本文介紹一種實現(xiàn)RS232接口設備與CAN總線設備進行通信的轉(zhuǎn)換器,更好的解決用戶在地域、通信網(wǎng)絡、接口協(xié)議等方面的矛盾。
RS232-CAN通信協(xié)議轉(zhuǎn)換器設計,主要是完成RS232與CAN總線之間的通信協(xié)議轉(zhuǎn)換,實現(xiàn)數(shù)據(jù)的互聯(lián)通信。在通信過程中,為了使系統(tǒng)具有通用性和穩(wěn)定性,對供電電源、通信隔離、防雷電等方面進行了特殊設計。系統(tǒng)原理框圖如圖1所示。
圖1 系統(tǒng)原理框圖
選用意法半導體公司ARM Co rtex?-M 3核的32位STM 32F103C8單片機,負責系統(tǒng)的整體運行。單片機特點為:最大時鐘頻率為72MHz,3個16位定時器,其內(nèi)部集成CAN2.0控制器、USART接口和USB2.0全速接口等,調(diào)試模式為SWD和JATG接口。單片機的PA9和PA10引腳用來做串口數(shù)據(jù)的收發(fā),PA11和PA12引腳用來做CAN數(shù)據(jù)的收發(fā)。
電源模塊設計框圖如圖2所示。選用LM 2574-ADJ實現(xiàn)輸入交流或者直流的電壓范圍為3.5V-40V,產(chǎn)生5V電壓,為隔離電源和ASM 1117-33供電。ASM 1117-33產(chǎn)生3.3V電壓為單片機供電;隔離電源選用MORNSUM公司的IB0505LS-1W,產(chǎn)生5V隔離電壓為CAN收發(fā)器ISO1050DUB副邊供電。
圖2 電源模塊設計框圖
單片機STM 32F103C8集成CAN2.0控制器。CAN收發(fā)器選擇TI公司的ISO1050DUB,把CAN控制器的邏輯電平轉(zhuǎn)換為CAN總線的差分電平。ISO1050DUB的主要特點為:具有2500-VRMS電氣隔離;提供-27V到40V的總線故障保護,增強系統(tǒng)的抗干擾能力及可靠性;符合ISO11898標準,可以與其他ISO11898標準的CAN收發(fā)器互連。CAN總線接口電路設計如圖3所示,與文獻[2]和[3]相比較,該電路具有電路簡單、PCB尺寸小、集成度高、放靜電、抗雷電的隔離功能等優(yōu)點。
在使用過程中,雷電可能對轉(zhuǎn)換器中其他電子器件及數(shù)據(jù)的實時、可靠通信產(chǎn)生很大的影響[4]。因此參考浪拓電子技術(shù)有限公司生產(chǎn)的浪涌保護器件瞬態(tài)抑制二極管NUP2105、氣體放電管BA401N等,設計轉(zhuǎn)換器的通信系統(tǒng)。NUP2105是一個雙向瞬態(tài)電壓抑制器,用來保護高速和容錯CAN總線中的收發(fā)器免受EM I和ESD的影響。在圖3中,BA401N、NUP2105吸收瞬態(tài)電壓的能量,以避免損壞CAN收發(fā)器。NUP2105設計為雙向配置,防止在長電纜系統(tǒng)中由于共模電壓失調(diào)而對正常的數(shù)據(jù)線路信號造成鉗位,NUP2105L的小電容適合用于數(shù)據(jù)傳輸速率高達1Mb it/s的系統(tǒng),圖中SMD014為自恢復保險絲。設計達到抑制ESD和EM I的行業(yè)標準,通過可靠接地,在雷電等惡劣環(huán)境下,起到很好的保護作用。
圖3 CAN總線接口電路圖
RS232協(xié)議用正負電壓表示邏輯狀態(tài),與TTL以高低電平表示邏輯狀態(tài)的規(guī)律不同。為了實現(xiàn)計算機接口或者終端為TTL器件連接,必須在RS232接口與TTL電路之間進行電平和邏輯關(guān)系的變換。本設計采用的RS232電平轉(zhuǎn)換器為MAXIM公司的MAX3232,電路設計如圖4所示。為了保證安全的通信隔離,MAX3232與CAN收發(fā)器ISO1050DUB的原邊共用一個電源。
圖4 RS232接口電路圖
程序是在KEIL公司Keil u Vision4環(huán)境下開發(fā)的,子程序包括:UART初始化,CAN初始化,軟件FIFO初始化,UART串口接收中斷服務程序,UART發(fā)送中斷服務程序,CAN接收中斷服務程序,CAN發(fā)送中斷服務程序,參數(shù)設置、存儲子程序,參數(shù)存儲地址遍歷程序等。主程序流程圖如圖5所示。
圖5 主程序流程圖
由于STM 32的UART沒有緩存寄存器,而其CAN控制器在接收端有2個3級深度的FIFO、發(fā)送端有3個發(fā)送郵箱。UART是以字節(jié)為單位發(fā)送數(shù)據(jù),CAN是以可配置的多字節(jié)(小于9個字節(jié))組成的幀為發(fā)送單位。所以有必要把接收到的CAN數(shù)據(jù)打包給串口發(fā)給上位機。另外結(jié)合CAN傳輸速率可最大化利用內(nèi)存內(nèi)建FIFO[5]。在UART向CAN發(fā)送數(shù)據(jù)的時候先打包在FIFO,再傳遞給CAN控制器,UART在接收的時候,從FIFO中依次讀出解包的數(shù)據(jù)。UART發(fā)送數(shù)據(jù)流程圖如圖6所示。
圖6 UART發(fā)送數(shù)據(jù)流程圖
UART接口軟件包括:UART初始化、UART發(fā)送數(shù)據(jù)程序、UART接收數(shù)據(jù)程序。UART初始化包含:數(shù)據(jù)位數(shù)、停止位位數(shù)、校驗模式、傳輸波特率、工作模式等。CAN接口程序包括:CAN初始化、CAN數(shù)據(jù)發(fā)送程序、CAN數(shù)據(jù)接收程序。CAN初始化包含:地址設定、波特率設置、標識符過濾設置、工作模式等。FIFO初始化是在總程序初始化的時候建立的。根據(jù)UART、CAN雙方的傳輸速度及CAN數(shù)據(jù)格式和打包模式可以最大限度的利用內(nèi)存內(nèi)建FIFO。
轉(zhuǎn)換器的硬件與軟件設計好后,對轉(zhuǎn)換器進行實際應用。在物聯(lián)網(wǎng)的智能農(nóng)業(yè)應用中,CAN總線設備組成CAN網(wǎng)絡對環(huán)境的溫濕度、土壤PH值等參數(shù)進行實時檢測,把檢測數(shù)值傳送給中央控制室的PC機,PC機根據(jù)參數(shù)數(shù)值控制CAN網(wǎng)絡中的執(zhí)行單元,對土壤灌溉或者通風等。CAN網(wǎng)絡與PC機進行通信中,使用了所設計的CAN總線與RS232的協(xié)議轉(zhuǎn)換器。使用中將串口速率設置為每秒57.6kbit,CAN總線接口的通信速度設置為每秒125kb it。經(jīng)過實際驗證,在CAN系統(tǒng)的發(fā)送速率在每秒100幀以下時,能夠保證上位機接收到所有的數(shù)據(jù)幀,而不發(fā)生丟幀事故。
本文介紹了一種基于STM 32單片機的RS232-CAN總線通信協(xié)議轉(zhuǎn)換器,從硬件和軟件兩個方面對其進行了介紹。轉(zhuǎn)換器能夠?qū)崿F(xiàn)串口協(xié)議與CAN總線協(xié)議間的轉(zhuǎn)換,能夠?qū)崿F(xiàn)多點的CAN總線網(wǎng)絡數(shù)據(jù)與單點的串口數(shù)據(jù)進行透明傳輸。在物聯(lián)網(wǎng)的智能農(nóng)業(yè)應用中,取得很好效果,具有一定工程意義。該轉(zhuǎn)換器體積小,成本低,便于實現(xiàn),易于推廣。
[1] 饒運濤,鄒繼君,王進宏,等.現(xiàn)場總線CAN原理與應用技術(shù)[M].北京:北京航空航天大學出版社,2007:13-14.
[2] 楊鵬,王曉雷,許曉云,等.RS-232-CAN智能轉(zhuǎn)換卡的設計[J].儀表技術(shù)與傳感器,2009(12):97-98,107.
[3] 胡鳳忠,羅志年,廖亦凡.基于CAN總線的密集烤房群遠程監(jiān)控系統(tǒng)[J].儀表技術(shù)與傳感器,2012(12):61-63.
[4] 張珣,葉海龍.基于CAN總線的船舶數(shù)據(jù)通信系統(tǒng)[J].機電工程,2010,27(3):89-92.
[5] 王愛林,劉榮華,嚴頂.基于STM 32的CAN-USB轉(zhuǎn)換模塊[J].儀表技術(shù)與傳感器,2012(6):69-70,73.