CAN總線(xiàn)到Ethernet網(wǎng)的網(wǎng)關(guān)研究實(shí)現
CAN總線(xiàn)是一種開(kāi)放式、數字化、多點(diǎn)通信的控制系統局域網(wǎng)絡(luò ),是當今自動(dòng)化領(lǐng)域中最具有應用前景的技術(shù)之一。由于CAN總線(xiàn)具有通信速率高、開(kāi)放性好、報文短、糾錯能力強以及控制簡(jiǎn)單、擴展能力強、系統成本低等特點(diǎn),越來(lái)越受到人們的關(guān)注。以太網(wǎng)具有快速、靈活、方便、可靠的特長(cháng),如果把現場(chǎng)總線(xiàn)與以太網(wǎng)互聯(lián)的話(huà),可實(shí)現過(guò)程控制中從設備層到管理層的一體化,使得企業(yè)可以廣泛地應用如互聯(lián)網(wǎng)、無(wú)線(xiàn)通信、智能設備和決策支持系統等新技術(shù),以達到提高效率和降低成本的目的。
硬件設計
硬件選擇
要實(shí)現現場(chǎng)總線(xiàn)設備接入Internet,關(guān)鍵就是要實(shí)現TCP/IP 協(xié)議、以及傳輸信息介質(zhì)的選擇。筆者用SX52微控制器作為處理器, 以太網(wǎng)驅動(dòng)芯片RTL8019AS經(jīng)耦合隔離濾波器HR61101G和RJ45接口接入以太網(wǎng),配有RS232和CAN總線(xiàn)兩個(gè)擴展接口,可以將具有RS232接口的設備或采用CAN總線(xiàn)協(xié)議通信的設備連到以太網(wǎng)上。RS232接口采用MAX232CPE芯片,CAN總線(xiàn)控制器采用Philips公司的SJA1000芯片,CAN收發(fā)器采用PCA82C250芯片。硬件結構框圖見(jiàn)圖1。

圖1 硬件結構框圖
工作原理為:當以太網(wǎng)中發(fā)送數據和請求,通過(guò)RJ45送到RTL8019AS,RTL8019AS 負責將處理后的以太網(wǎng)幀送入SX52的TCP/IP協(xié)議棧,由協(xié)議棧對數據報進(jìn)行解析,得到原始的請求和控制信息。請求和控制信息再經(jīng)過(guò)SJA1000進(jìn)行CAN協(xié)議格式的數據封裝,然后和現場(chǎng)的CAN總線(xiàn)設備進(jìn)行通信。請求和控制的回復信息到局域網(wǎng)的過(guò)程與上面正好相反。
硬件電路圖
在CAN到Ethernet網(wǎng)關(guān)的硬件設計中,在確保通信功能順利實(shí)現的同時(shí),充分利用了SX52芯片I/O口靈活配置的特點(diǎn),最大程度地節約了微控制器SX52的硬件資源。其電路簡(jiǎn)圖見(jiàn)圖2。

圖2 電路簡(jiǎn)圖
SX52有5個(gè)I/O口共40個(gè)引腳,在設計中利用SX52的C口的RC0~RC7連接RTL8019AS的數據口SD0~SD7,SX52的B口兼顧選址和讀寫(xiě)控制功能,在開(kāi)發(fā)中用它與RTL8019AS 的地址及讀寫(xiě)控制引腳連接。RTL8019AS 基地址選擇引腳IOS0~ IOS3接地,此時(shí)I/O基地址為300H,即001100000000,所以地址線(xiàn)SA9、SA8接+ 5V。又因為寄存器地址偏移量為00H~1FH 共32個(gè),對應地址從300H到31FH,所以只需將地址線(xiàn)SA0~SA4接SX52 的RB0~RB4,其余地址線(xiàn)接地即可。芯片IORB、IOWB引腳為讀寫(xiě)信號線(xiàn),接SX52的RB6、RB5讀寫(xiě)控制引腳。RTL8019AS 可以兼容8位和16位操作。圖2中IOCS16是16位I/O的選擇腳,當RTL8019AS上電復位的時(shí)候,如果這個(gè)腳為低電平,選擇8位模式,為高電平選擇16位模式。由于SX52是8位的數據總線(xiàn),因此要用8位總線(xiàn)模式,所以將這個(gè)腳接地。RTL8019AS有3種工作方式,筆者采用第一種工作方式,此時(shí)JP 引腳接高電平。AUI引腳決定使用AUI還是BNC接口。高電平時(shí)使用AUI 接口,低電平時(shí)使用BNC接口,支持8線(xiàn)雙絞線(xiàn)或同軸電纜。設計中采用雙絞線(xiàn)為通信介質(zhì),將該引腳接地。RTL8019AS 使用引腳TPIN+ 、TPIN- 、TPOUT+和TPOUT-連接耦合隔離濾波器HR61101G,通過(guò)RJ45插頭實(shí)現與以太網(wǎng)的連接。SJA1000是獨立的CAN 通信控制器, 支持CAN2.0B協(xié)議。它的AD0~AD7為地址數據復用線(xiàn),與SX52的D口RD0~RD7相連。當遠程用戶(hù)通過(guò)Web服務(wù)器查詢(xún)現場(chǎng)的CAN總線(xiàn)數據時(shí),SJA1000將現場(chǎng)控制單元的CAN 總線(xiàn)數據解析,發(fā)送到SX52,再傳到Internet。PCA82C250對總線(xiàn)提供發(fā)送能力并對CAN控制器提供接收能力,它支持1Mbps的速度。為保證SX52與SJA1000協(xié)同工作,在硬件設計中將兩個(gè)芯片共用一個(gè)硬件復位線(xiàn),以確保SX52與SJA1000硬件同步復位。MAX232CPE完成232電平與TTL電平轉換。用于提供一個(gè)本地接口,為調試和維護提供方便。TXD接SX52的RA2腳,RXD接SX52的RA3腳,RS―RXD和RS―TXD是RS232電平,為標準串口電平。數據可以從串口輸入到單片機SX52,SX52再把數據送到RTL8019AS。
網(wǎng)關(guān)的軟件設計
整個(gè)互聯(lián)系統的軟件設計可以分為3個(gè)部分:CAN總線(xiàn)設備接口通信程序、網(wǎng)關(guān)協(xié)議轉換程序和基于以太網(wǎng)的TCP/IP協(xié)議的程序實(shí)現。
網(wǎng)關(guān)協(xié)議轉換程序
網(wǎng)關(guān)協(xié)議轉換程序的整體設計思路為:當以太網(wǎng)應用層有數據要發(fā)送到CAN節點(diǎn)時(shí),首先,數據發(fā)送到網(wǎng)關(guān),由以太網(wǎng)控制器協(xié)議轉換模塊從UDP數據報文中解析出完整的CAN 協(xié)議數據包,存放在數據緩沖區A,再調用CAN 控制器協(xié)議模塊將它發(fā)送到CAN 總線(xiàn)上。反過(guò)來(lái),當CAN 設備有數據要發(fā)送到用戶(hù)層時(shí),首先數據發(fā)送到網(wǎng)關(guān),由CAN控制器協(xié)議模塊將完整的CAN 協(xié)議數據包存放在數據緩沖區B,再調用以太網(wǎng)控制器協(xié)議轉換模塊將完整的CAN協(xié)議數據包作為應用層數據封裝發(fā)送到以太網(wǎng)應用層。
tcp/ip相關(guān)文章:tcp/ip是什么
評論