<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種CAN總線與以太網(wǎng)互連系統(tǒng)的設(shè)計(jì)方案

          一種CAN總線與以太網(wǎng)互連系統(tǒng)的設(shè)計(jì)方案

          作者: 時(shí)間:2016-11-21 來源:網(wǎng)絡(luò) 收藏

            1.前言

          本文引用地址:http://www.ex-cimer.com/article/201611/319437.htm

            在大型企業(yè)自動化系統(tǒng)中,在上層企業(yè)管理層和生產(chǎn)監(jiān)控層采用的都是以太網(wǎng)和PC機(jī),而在下層車間現(xiàn)場都是采用現(xiàn)場總線,如RS-485($14.5000)、CAN、lonWorks等,而連接上下兩層的溝通通常采用工業(yè)控制機(jī)加以太網(wǎng)卡再加上PC機(jī)插槽上的與現(xiàn)場總線對應(yīng)的接口卡或并行打印口的EPP接口卡來實(shí)現(xiàn),這種連接方式成本高,開發(fā)周期長,接口卡成為系統(tǒng)上下兩層的通信瓶頸一旦出現(xiàn)故障上下兩層的聯(lián)系就將中斷;為此利用廉價(jià)的基于單片機(jī)的以太網(wǎng)-CAN網(wǎng)橋取代昂貴的工控機(jī)加接口卡,實(shí)現(xiàn)以太網(wǎng)和CAN總線網(wǎng)的直接連接具有重要意義。

            2.系統(tǒng)方案設(shè)計(jì)

            由于系統(tǒng)中有以太網(wǎng)網(wǎng)和CAN總線數(shù)據(jù)處理,因此需要采用大容量RAM進(jìn)行暫存網(wǎng)絡(luò)數(shù)據(jù),采用集成有8KRAM和64K Flash的P89C668型高速控制器,如圖1所示,系統(tǒng)采用芯片RTL8019進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)收發(fā),采用芯片SJA1000($2.8080)處理CAN總線數(shù)據(jù),同時(shí)為了方便對轉(zhuǎn)換橋系統(tǒng)調(diào)試和進(jìn)行參數(shù)設(shè)置(CANID、CAN波特率,以太網(wǎng)物理地址,IP地址,網(wǎng)關(guān)地址,子網(wǎng)掩碼)和保存,增大系統(tǒng)使用的范圍和使用靈活性,系統(tǒng)還擴(kuò)展串口通信RS232($780.5000)接口和24C256串口存儲電路。

            

            3.系統(tǒng)硬件設(shè)計(jì)

            3.1 以太網(wǎng)接口電路設(shè)計(jì)

            以太網(wǎng)接口電路如圖2所示,電路中36腳~43腳為數(shù)據(jù)輸入輸出口直接連接到單片機(jī)P0口。RTL8019AS有三個(gè)分別反映其工作狀態(tài)的輸出腳,分別LED0、LED1、LED2,分別輸出網(wǎng)絡(luò)的連接性、數(shù)據(jù)發(fā)送和數(shù)據(jù)輸出狀態(tài);IOCS16是16位或8位I/O的選擇腳,當(dāng)上電復(fù)位的時(shí),該引腳為低電平時(shí),網(wǎng)卡將選擇8位模式,為高電平時(shí),網(wǎng)絡(luò)控制器將選擇16位的模式,電路用了個(gè)電阻R9(27K)下拉,在復(fù)位時(shí)引腳為低電平,因此網(wǎng)卡選擇8位模式。由于RTL8019AS每個(gè)引腳(除AEN外)內(nèi)部都有100K的下拉電阻置地,故當(dāng)各引腳懸空時(shí)內(nèi)部檢測為低電平,由圖2可知85腳、84腳、82腳、81腳分別懸空,從而選擇了基地址300H,因此電路擴(kuò)展就要以此為基準(zhǔn)來進(jìn)行配置,RTL8019AS地址線A19~A10固定接地,A9、A8定接P2.5作為地址選擇端有單片機(jī)來控制而不是用34腳AEN(直接接地)來作為地址選擇斷,將A7,A6,A5固定接地,A4~A0要根據(jù)所要訪問的RTL8019AS寄存器地址不同而不同,從而由由P89C668的P2.0~P2.4來選擇RTL8019300H~31FH,因此對應(yīng)P2口地址線變化范圍為0xE0-0xFF,由于僅有P2口來選擇地址,而P0口并沒有參與地址編址電路中單片機(jī)對RTL8019AS的尋址I/O并不是連續(xù),程序中分別定義Reg00~Reg1F來分別對應(yīng)300H~31FH端口,定義如下:

            

            

            3.2 CAN總線的接口電路設(shè)計(jì)

            如圖3所示,CAN總線的接口電路主要由P89C668處理器、CAN通信控制器SJA1000、CAN總線驅(qū)動器82C250、高速光電耦合器6 N 1 3 7電路組成,微處理器P 8 9 C 6 6 8負(fù)責(zé)SJA1000初始化,通過控制SJA1000實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務(wù);為了增強(qiáng)CAN總結(jié)點(diǎn)的抗干擾能力,SJA1000的TX0和RX0通過高速光耦6N137($0.2160)后與82C250相連,實(shí)現(xiàn)了本節(jié)點(diǎn)在CAN總線上的電氣隔離,提高了本系統(tǒng)的硬件的穩(wěn)定性和安全性;82C250的CANH和CANL引腳之間串連60歐姆(兩個(gè)120歐姆電阻并聯(lián))的電阻以消除電路中信號的反射等干擾,CANH和CANL與地之間并聯(lián)兩個(gè)30pF的小電容,起到濾除總線上的高頻干擾和一定的電磁輻射的能力,兩根CAN總線輸入端與地之間分別接了一個(gè)防雷擊管,當(dāng)兩端輸入端與地之間出現(xiàn)瞬變干擾時(shí),通過防雷擊管的放電起到一定的保護(hù)作用,R18則為斜率電阻。

            

            4.系統(tǒng)軟件設(shè)計(jì)

            4.1 系統(tǒng)軟件總體設(shè)計(jì)

            如圖4所示,根據(jù)以太網(wǎng)與現(xiàn)場總線CAN協(xié)議轉(zhuǎn)換功能可知系統(tǒng)軟件包括TCP/IP協(xié)議程序、CAN協(xié)議程序、RS232串行數(shù)據(jù)收發(fā)程序以及對以上三種協(xié)議程序進(jìn)行協(xié)議轉(zhuǎn)換和監(jiān)控管理的應(yīng)用管理程序;TCP/IP協(xié)議包括ARP(地址解析協(xié)議)、IP協(xié)議(網(wǎng)際協(xié)議)、ICMP(Internet互聯(lián)網(wǎng)控制報(bào)文協(xié)議)、TCP(傳輸控制)協(xié)議和UDP(用戶數(shù)據(jù)報(bào))協(xié)議,ARP協(xié)議用于負(fù)責(zé)把一個(gè)IP地址映射成物理地址,即獲取對方或通知對方本主機(jī)物理地址的一個(gè)協(xié)議;IP協(xié)議主要功能是把源主機(jī)上的數(shù)據(jù)分組發(fā)送到互聯(lián)網(wǎng)中的任何一臺目標(biāo)主機(jī)上;ICMP用于差錯(cuò)報(bào)告和報(bào)文控制的協(xié)議,在本系統(tǒng)種主要完成ping命令請求和應(yīng)答功能;UDP和TCP協(xié)議在工作時(shí)是建立在IP協(xié)議之上,UDP協(xié)議對每次輸出都生成一個(gè)UDP數(shù)據(jù)報(bào),然后把生成的UDP數(shù)據(jù)報(bào)直接封裝在IP數(shù)據(jù)報(bào)中進(jìn)行傳輸,提供無連接的不可靠的數(shù)據(jù)報(bào)文服務(wù),而TCP協(xié)議提供面向連接的、可靠的數(shù)據(jù)流服務(wù);CAN協(xié)議用于將接收到的以太網(wǎng)數(shù)據(jù)轉(zhuǎn)換成一定格式的CAN協(xié)議格式的數(shù)據(jù)并轉(zhuǎn)發(fā)到目標(biāo)節(jié)點(diǎn)以及從其他目標(biāo)節(jié)點(diǎn)受到的數(shù)據(jù)轉(zhuǎn)換成TCP/IP協(xié)議格式數(shù)據(jù);而RS232串口協(xié)議功能主要為系統(tǒng)調(diào)試和IP地址等參數(shù)進(jìn)行設(shè)置;各功能模塊由應(yīng)用管理程序進(jìn)行監(jiān)控和管理完成整個(gè)系統(tǒng)功能的協(xié)調(diào)運(yùn)行。

            

            4.2 CAN總線擴(kuò)展協(xié)議制定

            以太網(wǎng)數(shù)據(jù)轉(zhuǎn)CAN總線數(shù)據(jù)時(shí),由于CAN總線數(shù)據(jù)比較少,能滿足以太網(wǎng)數(shù)據(jù)格式,而以太網(wǎng)向某CAN節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),由于以太網(wǎng)數(shù)據(jù)據(jù)較多,遠(yuǎn)超出CAN總線一幀數(shù)據(jù)格式,因此需要設(shè)計(jì)CAN應(yīng)用層協(xié)議對以太網(wǎng)數(shù)據(jù)進(jìn)行管理,CAN現(xiàn)場總線僅定義物理層和數(shù)據(jù)鏈路層,實(shí)際應(yīng)用中,這兩層完全由硬件實(shí)現(xiàn),由于CAN總線底層協(xié)議沒有規(guī)定應(yīng)用層,本身并不完整,而在基于CANBUS的分布式控制系統(tǒng)中,有些附加功能需要一個(gè)高層協(xié)議來實(shí)現(xiàn),結(jié)合CAN總線數(shù)據(jù)傳輸是按幀(11bit/29bit控制場+8字節(jié)數(shù)據(jù)場)傳輸?shù)奶攸c(diǎn),應(yīng)用于CAN總線的應(yīng)用層協(xié)議可以適當(dāng)?shù)睾喕?,采用傳統(tǒng)的源/目的模式格式,結(jié)合CAN特有的雙濾波特性,可以實(shí)現(xiàn),點(diǎn)對點(diǎn),以及多播或廣播等通信功能,其協(xié)議要素如圖5所示。

            

            結(jié)合協(xié)議模型,CAN控制器采用采用PeliCAN模式,充分利用其29位標(biāo)示符,采用其中14位作為尋址標(biāo)識符(包括目標(biāo)地址,源地址各7位),其中8位標(biāo)示符作為分段碼,以及剩余5位作為功能碼,如果用戶還需要其他功能的標(biāo)示位則對各位自行定義可適當(dāng)調(diào)整,具體格式如圖6所示。

            

            目標(biāo)節(jié)點(diǎn)地址和源節(jié)點(diǎn)地址由7位二進(jìn)制標(biāo)示,最大可以訪問128個(gè)CAN節(jié)點(diǎn),分段碼主要是完成數(shù)據(jù)傳輸過程中對命令請求、應(yīng)答以及所傳輸?shù)臄?shù)據(jù)在整個(gè)報(bào)文中的序號及其標(biāo)志等,具體格式如圖7所示,ACK為應(yīng)答位,0表示本幀數(shù)據(jù)需要應(yīng)答,一般用于命令幀,1表示應(yīng)答幀,用于不需要應(yīng)答的命令幀,SegPolo由2位二進(jìn)制組成,表示分段表示符,SegNum用于記錄分段數(shù),SegPolo=00b表示本次數(shù)據(jù)傳輸沒有分段,此時(shí)SegNum=0×00,SegPolo=01b時(shí)表示為接到以太網(wǎng)批量數(shù)據(jù)的第一個(gè)分段,此時(shí)SegNum=0×01,SegPolo=10b時(shí)表示為中間數(shù)據(jù)段,SegNum沒傳輸一個(gè)數(shù)據(jù)加1,以記錄分段數(shù),SegPolo=11b時(shí)表示最后分段;功能碼由5位二進(jìn)制數(shù)組成,共有32種情況,表示對報(bào)文功能的規(guī)定,可有用戶根據(jù)情況自行規(guī)定所表示的意義,報(bào)文數(shù)據(jù)由8個(gè)字節(jié)組成表示每幀CAN數(shù)據(jù)包中所載的數(shù)據(jù)。

            4.3 以太網(wǎng)與CAN總線數(shù)據(jù)轉(zhuǎn)換主程序設(shè)計(jì)

            主程序流程圖如圖8所示,以太網(wǎng)與CAN總線數(shù)據(jù)轉(zhuǎn)換主程序主要完成串口輸入程序、ARP網(wǎng)關(guān)解析程序、TCP數(shù)據(jù)處理程序、UDP數(shù)據(jù)處理程序、CAN總線數(shù)據(jù)處理程序,串行口程序主要完成對網(wǎng)絡(luò)相關(guān)參數(shù)的設(shè)置以及通過串口完成的網(wǎng)絡(luò)調(diào)試程序,如手工完成對其他網(wǎng)絡(luò)主機(jī)的Ping命令、UDP數(shù)據(jù)通信命令、TCP數(shù)據(jù)通信命令及ARP解析命令等;主程序還實(shí)時(shí)監(jiān)測對TCP協(xié)議的超時(shí)處理、TCP連接處理以及斷開處理,當(dāng)有以太網(wǎng)數(shù)據(jù)接收時(shí),首先判斷是否為ARP報(bào)文還是IP報(bào)文,如是ARP請求報(bào)文則需進(jìn)行ARP應(yīng)答等操作,如為IP報(bào)文則進(jìn)一步區(qū)分是ICMP報(bào)文(PING命令)還是TCP報(bào)文或UDP報(bào)文;

            

            如有以太網(wǎng)數(shù)據(jù)接收,則轉(zhuǎn)換成相應(yīng)CAN幀格式數(shù)據(jù)并轉(zhuǎn)發(fā)至對應(yīng)地址的CAN節(jié)點(diǎn),同時(shí)如有CAN節(jié)點(diǎn)發(fā)送數(shù)據(jù)則轉(zhuǎn)換成以太網(wǎng)數(shù)據(jù)格式并轉(zhuǎn)發(fā)至以太網(wǎng)服務(wù)器,從而完成以太網(wǎng)與CAN局域網(wǎng)數(shù)據(jù)相互轉(zhuǎn)換橋功能。

            5.小結(jié)

            在分布式控制系統(tǒng)中,隨著測控技術(shù)與網(wǎng)絡(luò)技術(shù)日益緊密的結(jié)合,測控系統(tǒng)接入互聯(lián)網(wǎng)己經(jīng)成為大勢所趨,這也促成了近年來嵌入式網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,本文系統(tǒng)地提出了一種CAN總線與以太網(wǎng)互連系統(tǒng)的設(shè)計(jì)方案,轉(zhuǎn)換器通過CAN總線接口CAN局域網(wǎng)連接,通過以太網(wǎng)接口與計(jì)算機(jī)連接,可以實(shí)現(xiàn)可靠的CAN總線協(xié)議與以太網(wǎng)協(xié)議的高速數(shù)據(jù)通信。




          關(guān)鍵詞: CAN總線以太

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();