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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于ENC28J60的嵌入式以太網(wǎng)/CAN網(wǎng)關設計

          基于ENC28J60的嵌入式以太網(wǎng)/CAN網(wǎng)關設計

          作者: 時間:2009-05-19 來源:網(wǎng)絡 收藏

          2.1.2 數(shù)據(jù)的接收與發(fā)送
          LPC2294的每個控制器中有3個發(fā)送緩沖區(qū),發(fā)送數(shù)據(jù)時先查詢SR寄存器是否空閑,若空閑才能寫入數(shù)據(jù),然后判斷報文的類型,根據(jù)報文類型調用相應的發(fā)送函數(shù),即對數(shù)據(jù)進行封裝并寫入發(fā)送緩沖區(qū),最后調用發(fā)送命令。為了提高效率,接收數(shù)據(jù)采用中斷方式,首先在open的初始化程序中要使能接收中斷,當有中斷發(fā)生,讀取CANICR寄存器,判斷接收中斷標志是否置位,如果有則判斷報文的類型,根據(jù)報文類型調用相應的接收函數(shù),處理接收緩沖區(qū)的數(shù)據(jù)。
          2.1.3 異常處理
          在總線發(fā)生嚴重故障的情況下,CAN節(jié)點脫離總線,此時下述寄存器位被置位為CANSR的BS位、CANIR的BEI位和EI位(如果使能)和CAN-MOD的RM位。RM將許多CAN控制器功能復位和禁止。軟件下一步必須置零RM位。發(fā)送錯誤計數(shù)器將遞減計數(shù)總線釋放條件(11個連續(xù)的隱性位)的第128個錯誤。軟件通過讀取Tx錯誤計數(shù)器對計數(shù)器遞減計數(shù)的情況進行監(jiān)測。
          2.2 通信軟件
          2.2.1 的初始化
          LPC2294。對的各種操作均通過SPI接口進行,包括寄存器的設置、數(shù)據(jù)的發(fā)送和接收。LPC2294的SPI工作在主動方式,即的SPI時鐘信號由LPC2294提供。ENC28J60初始化內容主要有定義ENC28J60發(fā)送緩沖區(qū)的大小,設置MAC地址與IP地址、子網(wǎng)掩碼、初始化LEDA、LEDB顯示狀態(tài),設置ENC28J60工作模式。
          2.2.2 TCP/IP協(xié)議
          采用系統(tǒng)中廣泛應用的LwIP協(xié)議棧。LwIP TCP/IP實現(xiàn)的特點是在保持協(xié)議主要功能的基礎上減少對RAM的占用,這使協(xié)議棧LwIP適合在低端系統(tǒng)中使用。LwIP協(xié)議棧應用到的協(xié)議有ARP,IP,IcMP,TCP,UDP,其具有滑動窗口、擁塞控制和接收分片的分組功能。在LwIP中可以有多個網(wǎng)絡接口,每個網(wǎng)絡接口都對應一個strut netif()。netif包含了相應網(wǎng)絡接口的屬性、收發(fā)函數(shù)。采取調用netif的方法netif→inpln()及netif→output()進行packet的收、發(fā)等操作。在驅動中主要進行的就是實現(xiàn)網(wǎng)絡口的收、發(fā)、初始化以及中斷處理。LwIP協(xié)議中沒有提供HTTP協(xié)議,所以需要用原始API函數(shù)編寫HTTP應用程序。
          2.3 /CAN雙向協(xié)議轉換
          整個中最為關鍵的就是CAN協(xié)議與TCP/IP協(xié)議的相互轉換。協(xié)議轉換流程圖如圖6所示。

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

          具體過程如下:當接收到數(shù)據(jù),首先判斷數(shù)據(jù)類型,如果是從CAN接口接收CAN協(xié)議報文,便分離出數(shù)據(jù)部分,再將報文數(shù)據(jù)部分按系統(tǒng)規(guī)定的應用層格式進行封裝,然后將應用層數(shù)據(jù)存入以太網(wǎng)接口發(fā)送緩沖區(qū),由該接口在數(shù)據(jù)前面依次添加TCP或UDP頭、IP頭、以太幀頭,最后封裝成以太幀后,通過以太網(wǎng)接口發(fā)往以太網(wǎng)。若接收到的以太網(wǎng)數(shù)據(jù),數(shù)據(jù)轉換過程相反,依次去掉IP頭、TCP或UDP頭和應用層頭,再將應用層數(shù)據(jù)按CAN報文格式封裝好后存入CAN接口發(fā)送緩沖區(qū),由CAN接口發(fā)往CAN網(wǎng)絡中相應設備。若應用層數(shù)據(jù)長度大于8 B,則還需將數(shù)據(jù)以8 B為一組進行拆分。


          3 結 語
          符合IEEE802.3協(xié)議的ENC28J60不僅能提供以太網(wǎng)通信的相應功能,而且體積小,能夠簡化設計,可以設計出較小的。用上述方法構建的通信可實現(xiàn)以太網(wǎng)與CAN總線之間的協(xié)議轉換,為以太網(wǎng)與CAN總線網(wǎng)絡的互聯(lián)提供了一種傳輸速度快,成本低,穩(wěn)定性和安全性高的解決方案。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();