《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 基于PIC單片機的CAN-以太網協議轉換器的設計

基于PIC單片機的CAN-以太網協議轉換器的設計

2009-02-23
作者:蘇義鑫1, 王 軍1, 何 力2

??? 摘??要: 為了通過以太網遠程監控基于CAN總線的工業控制系統,設計了一個CAN-以太網協議轉換器。TCP/IP傳輸層的協議選擇UDP協議,用單片機實現CAN與UDP協議之間的轉換。
??? 關鍵詞: CAN; UDP; 協議轉換; 單片機

?

  隨著計算機技術、現場總線技術及信息技術的發展,CAN(Controller Area Network)總線在工業控制中的應用越來越普遍。CAN總線能實現現場各類儀表相互間的通信,但其遠程通信能力較弱。而以太網作為當今的主流網絡,具有很強的遠程通信能力。為了融合這兩類網絡的技術優勢,實現CAN總線網絡與以太網的數據互聯,必須設計CAN-以太網協議轉換器。
  本文提出一種設計CAN-以太網協議轉換器的方法,用16位PIC單片機設計一種CAN總線協議與TCP/IP協議的轉換網關。由于所針對的傳輸層協議是UDP(User Datagram Protocol),因此,實際上設計的是CAN總線協議與UDP協議的轉換網關。
1 CAN-以太網協議轉換器的系統結構
  系統主要由CAN通信模塊以太網通信模塊和協議轉換模塊三部分構成,通過一個16位的PIC單片機相連。CAN通信模塊主要用于采集現場儀表的數據和與協議轉換模塊之間的數據傳遞;以太網通信模塊主要負責協議轉換模塊與以太網之間的數據傳輸;協議轉換模塊是將CAN協議數據包與UDP協議數據包進行轉換。
  當現場儀表有數據要傳送到以太網上的工控機時,CAN通信模塊會采集CAN節點的數據,放入數據緩沖區;協議的轉換由PIC單片機完成,它將數據緩沖區CAN協議數據包轉換成UDP協議數據包,最后由以太網通信模塊發送給以太網。當控制命令或數據要從以太網傳送給現場儀表時,以太網通信模塊將接收以太網上的數據包,并放入數據緩沖區;然后協議轉換模塊把從以太網上接收到的UDP協議數據包轉換成CAN協議數據包;最后通過CAN通信模塊,將數據包發送給相應的現場儀表,從而實現對現場儀表的遠程控制。
2 硬件設計
  CAN-以太網協議轉換器的硬件主要由兩部分組成:CAN通信模塊接口電路和以太網通信接口電路。協議轉換主要通過單片機進行編程實現。
2.1 CAN通信模塊接口電路設計
  CAN通信接口電路主要由主控芯片PIC24FJ64GA008、CAN總線控制器SJA1000、CAN總線收發器82C250和高速光耦6N137組成,其接口電路如圖1所示。PIC24FJ64GA008單片機初始化CAN總線控制器SJA1000,并通過讀寫SJA1000的數據緩沖區實現CAN幀信息的接收和發送。CAN總線控制器SJA1000實現CAN總線數據鏈路層協議??偩€收發器82C250將CAN協議控制器與物理通信線路連接在一起。高速光耦6N137用于隔離,起到保護SJA1000型CAN總線控制器的作用。接口電路主要用到了單片機的并行主控端口模塊,它能夠很方便地實現與并行外設的連接。通過對并行端口控制寄存器(PMCON)和并行端口模式寄存器(PMMODE)進行適當的配置,使并行主控端口模塊的8位地址線與數據線復用,并提供鎖存信號PMALL、片選信號、讀信號、寫信號PMWR[1]。連接時將SJA1000的AD7~AD0腳與單片機的PMD[7..0]相連,用于傳送地址和數據。單片機通過引腳PMALL、、控制SJA1000的ALE、引腳,實現對SJA1000的讀寫控制。若片選信號與SJA1000的片選引腳相連,使SJA1000的基地址為0X8000,則SJA1000內部的32個寄存器的地址為:0X8000~0X801F。單片機的引腳與SJA1000的引腳INT相連,由于SJA1000的引腳是集電極開路輸出,因此需要加上拉電阻,這樣單片機就可以通過中斷方式讀寫SJA1000中的數據緩沖區[2]

?

2.2 以太網接口電路設計
  以太網接口電路用到的主要芯片有單片機PIC24FJ64GA008、以太網控制器RTL8019AS、鎖存器74LS373、存儲器93LC46、隔離濾波器20F001N。RTL8019AS是臺灣Realtek公司生產的以太網控制器,符合Ethernet II和IEEE802.3標準,收發速率可同時達到10Mb/s,內部有16K BRAM。接收數據和發送數據需通過DMA(Direct Memory Access)讀寫RTL8019AS的內部RAM來實現,單片機讀寫RAM時使用的是遠程DMA,RTL8019AS讀寫RAM時使用的是本地DMA。其接口電路如圖2所示[3],圖中,RTL8019AS的數據線SD[7..0]與單片機的PMD[7..0]相連,地址線SA9、SA8與PMCS1相連,低五位地址SA4~SA0與74LS373的Q[4..0]相連。93LC46是三線SPI串行接口EEPROM,主要保存RTL8019AS的配置信息,其00H~03H地址空間用于存儲RTL8019AS的配置寄存器CONFIG1~4的初始化值;04H~11H地址空間存儲網絡節點的地址;12H~7FH地址空間存儲即插即用的配置信息。若00H單元的值為0X00,RTL8019AS在復位后會自動讀取93LC46,這樣配置寄存器CONFIG1的值為00H,低四位IOS3~0的值為0,而當IOS[3..0]=0時,RTL8019AS的I/O端口的基地址為300H。因為RTL8019AS的地址為20位,所以其I/O口的地址空間為00300H~0031FH。據此,在接線時將SA19~SA10直接接地,SA9~SA8與PMCS1相連,SA7~SA5接地,當PMCS1=1時就可以選中芯片RTL8019AS。PMCS1是單片機的ADDR14,因此,RTL8019AS的內部地址空間00300H~0031FH的外部映射地址是4000H~401FH。RTL8019AS的IOCS16B引腳通過27k?贅的電阻下拉接地,將數據總線定義為8位[2,4]。

?

  RTL8019AS內置了10BASE-T收發器,可以通過雙絞線進行以太網通信。TPIN±為接收線,TPOUT±為發送線,經隔離濾波器20F001N后分別與RJ-45的RX±、TX±相連接。
??? LED0和LED1各接一個發光二極管以反映通信狀態,LED0被點亮表示通信沖突,LED1被點亮表示收到了網上的數據包。
3 軟件設計
??? 軟件主要分為三部分:CAN通信程序、以太網通信程序和CAN-UDP協議轉換程序。軟件設計的整體思路為:當現場儀表有數據要發送到以太網時,首先由CAN通信程序采集現場儀表的CAN協議數據包,并存放在緩沖區Buffer1中,然后調用CAN-UDP協議轉換程序將CAN協議數據包封裝成UDP數據包,最后由以太網通信程序發送到以太網的應用層。反之,當以太網上的數據要發送給某個CAN節點時,以太網通信程序首先將以太網傳輸層的UDP數據包放入緩沖區Buffer2,然后調用協議轉換程序將UDP數據包轉換成CAN協議數據包,最后調用CAN通信程序將緩沖區Buffer2中的數據發送到CAN總線上的指定節點。
3.1 CAN通信程序
??? CAN通信網絡是根據CAN協議2.0A構建的,SJA1000工作在BasicCAN模式。CAN通信程序主要由以下幾部分構成:SJA1000初始化程序Config_SJA1000( )、讀寫SJA1000內部寄存器程序Read_SJA1000( )和Write_SJA1000( )、CAN發送程序BCAN_DATA_SEND( )、CAN接收程序BCAN_DATA_RECEIVE( )。
??? Config_SJA1000( )程序主要完成波特率的設置、CAN節點地址的設定、驗收屏蔽寄存器AMR的設置、中斷寄存器IR的設置以及命令寄存器CMR的設置。為了確保CAN通信正常,CAN總線所有節點的波特率必須相同。當發送CAN協議數據包給CAN節點時,執行BCAN_DATA_SEND( )函數,該函數通過調用Write_SJA1000( )子程序,將待發送的數據寫入CAN的數據發送寄存器,從而實現發送。當SJA1000接收到CAN節點的數據時,通過單片機的外部中斷INT2向單片機申請中斷,單片機在INT2的中斷服務程序中會調用CAN接收程序,由CAN接收程序調用Read_SJA1000( ),將SJA1000數據接收緩沖區中的數據讀到單片機的數據緩沖區Buffer1中。
3.2 CAN-UDP協議轉換程序
??? CAN-UDP協議轉換程序主要負責將數據緩沖區Buffer1中的CAN協議數據包封裝成UDP數據包;同時也會從以太網的傳輸層上接收UDP數據包,然后封裝成CAN協議數據包,存入數據緩沖區Buffer2。UDP協議的幀格式如圖3所示。

?


  源端口號(2B):發送進程的端口,即假定在沒有其他信息的情況下,返回信息應該向什么地方發送。

??? 目標端口號(2B):UDP數據包的接收端號。
  數據報長度(2B):包括報頭和數據報在內的總字節數。
  校驗值(2B):對IP頭、UDP頭和數據中信息包頭的數位取反之和再取反。源端口號、目標端口號、數據報長度和校驗值構成UDP報頭。
  UDP數據:是實際的傳輸信息,數據的最大長度可達到65 527 字節。在傳輸過程中數據字節設為8B,且第一個數據字節為CAN節點的地址。CAN數據包幀格式如圖4所示。

?

  地址(1B):8位標識符,表示發送數據或接收數據的節點地址。字節數(1B):數據報和校驗和的字節數之和,固定值設為8。數據報(8B):前7個字節為傳送的實際信息,第8個字節為校驗和。
  將UDP協議數據包轉換成CAN協議數據包時,單片機將UDP數據包的報頭去掉,將第1個數據字節作為CAN協議包的第1個字節,UDP的第3個數據字節~第10個數據字節作為CAN協議包的第3字節~第10字節,UDP的第2個數據字節作為CAN協議包的第2個字節,固定值設為8,最后將轉換好的數據包發送出去。將CAN協議數據包轉換成UDP協議數據包時,單片機要給UDP協議數據包加上報頭。數據報的轉換過程與上述過程類似,不再贅述。
3.3 以太網通信程序
  以太網通信程序主要由RTL8019AS的初始化程序、數據接收函數和數據發送函數組成。系統上電后,先執行RTL8019AS的初始化程序,該子程序主要是對RTL8019AS中第0頁和第1頁的相關寄存器進行設置;然后程序對RTL8019AS數據發送寄存器、接收寄存器進行檢測,當數據緩沖區Buffer1有數據向以太網發送時,單片機通過遠程DMA通道將數據送到RTL8019AS的RAM中,然后發出傳送命令;之后RTL8019AS啟動本地DMA,將數據發送到以太網上。 反之,當以太網上有數據要傳給CAN節點時,先啟動本地DMA,將網上的數據讀到RTL8019AS的RAM中,然后單片機通過遠程DMA通道將RAM中的數據讀到緩沖區Buffer2。
  本文設計了一款價格低廉、性能可靠的CAN—以太網協議轉換器,為部分工業控制系統的遠程監控設計提供了一種新的選擇方案。


參考文獻
[1]?Microchip Technology Inc.PIC24FJ128GA系列數據手冊.2006.
[2]?Philips Semiconductors. SJA1000 datasheet.2000.
[3]?曹宇,魏豐,胡士毅.用51單片機控制RTL8019AS實現以太網通訊[J]. 電子技術應用,2003,29(1):21-23.
[4]?REALTEK. Realtek RTL8019AS datasheet.2005.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美激情第4页| 久久米奇亚洲| 国产精品sss| 国产精品美女| 狠狠色丁香婷婷综合| 国产精品亚洲综合一区在线观看| 久久国产精品久久久久久久久久| 久久免费视频这里只有精品| 欧美激情 亚洲a∨综合| 亚洲欧美日韩国产中文在线| 国内精品福利| 一本久久精品一区二区| 在线观看国产精品淫| 亚洲精品乱码久久久久久久久| 欧美一区二区三区喷汁尤物| 欧美精品尤物在线| 欧美亚洲午夜视频在线观看| 亚洲女同在线| 亚洲九九九在线观看| av成人免费在线| 欧美日韩日本视频| 在线看片成人| 欧美影院在线播放| 国产精品久久久久久亚洲调教| 欧美在线亚洲综合一区| 欧美在线观看天堂一区二区三区| 久久香蕉国产线看观看av| 国产精品成人免费| 国产精品网站一区| 欧美色道久久88综合亚洲精品| 欧美日韩国产高清| 在线成人激情视频| 国产亚洲激情视频在线| 91久久国产综合久久蜜月精品| 欧美日韩不卡视频| 久久久99精品免费观看不卡| 久久婷婷亚洲| 欧美丰满少妇xxxbbb| 午夜在线成人av| 一区二区三区日韩欧美精品| 国产精品ⅴa在线观看h| 雨宫琴音一区二区在线| 激情成人在线视频| 久久久久久夜精品精品免费| 亚洲精品视频在线观看免费| 国产精品你懂的| 在线看片成人| 久久香蕉精品| 亚洲专区免费| 欧美xart系列在线观看| 亚洲一区二三| 欧美精品免费观看二区| 美日韩精品免费| 在线一区二区三区做爰视频网站| 亚洲深夜福利视频| 亚洲高清在线| 久久人人看视频| 久久久噜久噜久久综合| 久久精品国产第一区二区三区| 日韩视频中午一区| 国产亚洲欧美在线| 免费一级欧美片在线观看| 国产日韩精品入口| 欧美精品少妇一区二区三区| 99国产成+人+综合+亚洲欧美| 欧美刺激午夜性久久久久久久| 国产美女精品| 亚洲一二三区精品| 亚洲免费av电影| 激情五月婷婷综合| 嫩模写真一区二区三区三州| 一区二区三区在线高清| 欧美精品一区二区三区高清aⅴ| 久久精品免费观看| 亚洲欧美视频一区二区三区| 黄色日韩精品| 国产精品日韩欧美大师| 久久网站热最新地址| 国产三级精品在线不卡| 欧美日韩调教| 99精品国产在热久久下载| 亚洲欧美日韩中文播放| 国产一区二区按摩在线观看| 欧美日韩日韩| 国产在线精品自拍| 国产精品黄视频| 最新亚洲视频| 欧美中文在线免费| 国产乱码精品一区二区三区av| 尤物yw午夜国产精品视频明星| 欧美激情中文字幕乱码免费| 久久久av网站| 在线亚洲电影| 国产精品综合色区在线观看| 久久综合久久久久88| 欧美日韩在线观看一区二区三区| 亚洲欧美日本另类| 久久综合色天天久久综合图片| 久久久久久久一区| 国内精品久久久久影院色| 韩日午夜在线资源一区二区| 亚洲一级在线观看| 好吊妞**欧美| 亚洲自拍偷拍视频| 国产精品r级在线| 在线成人激情视频| 亚洲精品你懂的| 一本在线高清不卡dvd| 欧美午夜视频一区二区| 欧美—级高清免费播放| 欧美激情综合五月色丁香| 中文欧美日韩| 久久精彩视频| 亚洲精品久久7777| 久久亚洲图片| 亚洲第一主播视频| 久久精品在线免费观看| 在线午夜精品| 最新亚洲视频| 欧美视频在线观看免费| 欧美午夜精品久久久久久超碰| 一区二区三区视频在线看| 欧美成年人视频网站| 9色porny自拍视频一区二区| 国产精品美女久久久久aⅴ国产馆| 性久久久久久久久| 亚洲精品在线观看视频| 亚洲激情视频在线播放| 中日韩美女免费视频网站在线观看| 欧美一区二区三区视频免费播放| 午夜久久99| 蜜臀av一级做a爰片久久| 欧美一区二区三区免费看| 亚洲成人在线| 亚洲七七久久综合桃花剧情介绍| 国产精品免费网站在线观看| 国产主播一区二区三区四区| 久久亚洲精品一区二区| 欧美日韩美女在线观看| 伊人婷婷久久| 国产精品久久二区| 久热精品视频在线| 亚洲三级免费观看| 亚洲深夜激情| 久久这里有精品15一区二区三区| 一本色道久久综合亚洲91| 欧美国产精品日韩| 久久精品青青大伊人av| 久久综合久久综合久久| 一区二区在线看| 国外成人网址| 久久精品一本| 欧美破处大片在线视频| 欧美国产视频在线| 欧美自拍丝袜亚洲| 国产精品一区二区久久精品| 亚洲日本成人| 麻豆精品视频在线观看| 亚洲黄色毛片| 久久精品视频免费播放| 亚洲日本va午夜在线电影| 午夜精品福利在线观看| 欧美午夜免费电影| 女主播福利一区| 国产一区二区三区自拍| 国产精品亚洲欧美| 亚洲麻豆国产自偷在线| 麻豆久久婷婷| 欧美日韩一区二区三区在线观看免| 亚洲免费观看高清完整版在线观看熊| 国产精品99久久久久久久久久久久| 亚洲主播在线| 亚洲激情在线播放| 一本久久青青| 日韩亚洲欧美综合| 亚洲精品乱码久久久久久久久| 巨胸喷奶水www久久久免费动漫| 国产日本欧美在线观看| 欧美一区二区三区另类| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲国产精品一区在线观看不卡| 国产一区二区三区无遮挡| 尤物网精品视频| 精品盗摄一区二区三区| 亚洲精品三级| 免费av成人在线| 一本色道久久88综合亚洲精品ⅰ| 久久aⅴ国产紧身牛仔裤| 亚洲免费在线看| 美女视频黄a大片欧美| 国产九九视频一区二区三区| 一区二区三区欧美成人| 国产亚洲欧洲一区高清在线观看| 国产精品美女久久| 欧美尤物巨大精品爽| 欧美日韩成人综合在线一区二区| 亚洲麻豆一区| 久久久99爱| 国产精品国产自产拍高清av王其| 久久久久久网站| 久久一区免费| 国产精品久久久久久影视| 久久激情五月激情| 久久亚洲一区| 国产偷自视频区视频一区二区| 99re66热这里只有精品3直播| 国产精品视频自拍| 欧美在线观看网址综合| 久久久之久亚州精品露出| 午夜亚洲激情| 欧美日韩视频在线观看一区二区三区| 国产在线拍偷自揄拍精品| 日韩视频二区| 亚洲国产婷婷综合在线精品| 91久久夜色精品国产九色| 国产精品mm| 欧美日本国产精品| 国产精品日韩欧美综合| 亚洲第一福利视频| 欧美日韩视频| 亚洲深夜影院| 国产精品毛片一区二区三区| 一区二区欧美国产| 国内精品视频一区| 在线视频精品一| 精品69视频一区二区三区| 美日韩丰满少妇在线观看| 国产欧美日韩在线播放| 午夜久久美女| 亚洲免费精品| 亚洲欧美日韩天堂| 欧美+日本+国产+在线a∨观看| 韩国成人精品a∨在线观看| 亚洲一区精品在线| 久久成人免费电影| 久久亚洲综合色一区二区三区| 国产精品v日韩精品| 亚洲综合色自拍一区| 欧美大片第1页| 男男成人高潮片免费网站| 亚洲人成人77777线观看| 伊人色综合久久天天| 亚洲精选大片| 欧美一区二区国产| 中国女人久久久| 久久精品一区二区三区中文字幕| 日韩性生活视频| 亚洲国产精品悠悠久久琪琪| 欧美精品一区二区三区很污很色的| 欧美日韩在线不卡一区| 亚洲免费婷婷| 欧美婷婷六月丁香综合色| 久久亚洲美女| 一本大道久久a久久精品综合| 久久综合给合久久狠狠色| 免费看黄裸体一级大秀欧美| 国产欧美一区二区精品婷婷| 国产视频精品网| 美女国内精品自产拍在线播放| 黄色精品在线看| 午夜精品福利在线观看| 美女视频网站黄色亚洲| 一区二区精品国产| 国产欧美一区二区精品秋霞影院| 在线免费日韩片| 亚洲精品一区二区网址| 欧美一级片久久久久久久| 欧美+亚洲+精品+三区| 国产精品每日更新在线播放网址| 国产精品乱子乱xxxx| 亚洲一区成人| 国产欧美1区2区3区| 国产在线播放一区二区三区| 国产亚洲一二三区| 亚洲剧情一区二区| 99热这里只有精品8| 亚洲第一精品久久忘忧草社区| 亚洲黄一区二区三区| 美女精品在线| 91久久夜色精品国产网站| 亚洲人永久免费| 亚洲视频网站在线观看| 久久久久久久波多野高潮日日| 欧美激情a∨在线视频播放| 欧美视频观看一区| 亚洲一区区二区| 欧美成人精品1314www| 欧美大成色www永久网站婷| 国产精品综合色区在线观看| 国产精品午夜久久| 久久av在线| 亚洲直播在线一区| 国产情人综合久久777777| 亚洲一区二区三区成人在线视频精品| 美女精品视频一区| 欧美久久久久久蜜桃| 国产精品久久久久久久久免费桃花| 国产日韩在线一区二区三区| 国产亚洲精品成人av久久ww| 日韩一区二区高清| 亚洲欧美精品伊人久久| 国产精品青草综合久久久久99| 欧美日韩黄色一区二区| 亚洲免费伊人电影在线观看av| 亚洲伦理一区| 亚洲欧美大片| 亚洲国产精品久久久久久女王| 欧美精品日日鲁夜夜添| 性色av香蕉一区二区| 国产在线观看一区| 夜夜爽夜夜爽精品视频| 欧美日韩在线亚洲一区蜜芽| 欧美亚洲免费高清在线观看| 欧美日韩精品免费在线观看视频| 一区二区三区日韩在线观看| av成人激情| 欧美视频日韩视频在线观看| 国产一区二区三区久久久| 亚洲黑丝一区二区| 欧美日韩专区| 在线观看91精品国产入口| 国产一区二区三区成人欧美日韩在线观看| 亚洲第一网站免费视频| 亚洲一区二区不卡免费| 日韩亚洲精品视频| 欧美日韩午夜激情| 亚洲激情在线播放| 国产精品久久久久久久一区探花|