色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > CAN總線與以太網(wǎng)互連的嵌入式網(wǎng)關(guān)設(shè)計

          CAN總線與以太網(wǎng)互連的嵌入式網(wǎng)關(guān)設(shè)計

          作者: 時間:2016-12-20 來源:網(wǎng)絡(luò) 收藏

          2 通信模塊軟件設(shè)計

          2.1 SJA1000(圖3)



          圖3 RTL8019AS 的初始化流程圖

          SJA1000驅(qū)動程序是由初始化、發(fā)送接收部分組成。

          2.1.1 初始化

          SJA1000在系統(tǒng)上電、硬件復(fù)位或主控制器發(fā)出復(fù)位命令后需要進行初始化,CAN初始化子程序通過對CAN控制器中相應(yīng)的寄存器寫入配置控制字來確定CAN控制器的波特率、發(fā)送通道、接收通道、標識符碼和標識符屏蔽碼等相關(guān)信息。進入初始化程序時必須初始化的寄存器有:通用控制寄存器CANGCON、位定時寄存器CANBT 143、以及15個報文對象郵箱中的報文對象控制寄存器CANc0NCH、報文對象狀態(tài)寄存器CANST CH、標識符寄存器

          CANIDT1~4、標識符屏蔽寄存器CANIDMl~4和報文數(shù)據(jù)寄存器CANMSG等。要注意的是,位定時寄存器CANBTI~3僅能在復(fù)位期間訪問,因此,在對這些寄存器初始化前,必須確保系統(tǒng)進入復(fù)位狀態(tài)。

          2.1.2 發(fā)送與接收

          本設(shè)計采用中斷方式發(fā)送和接收數(shù)據(jù),SJA1000芯片有一個報文發(fā)送緩沖區(qū)和兩個報文接收緩沖區(qū)用于CAN報文傳送,接收子程序負責(zé)節(jié)點報文的接收,在接收中斷處理程序中,先從接收緩沖區(qū)讀取要接收的報文,然后發(fā)送一個請求信號以啟動協(xié)議轉(zhuǎn)換和發(fā)送。發(fā)送子程序負責(zé)將以太網(wǎng)傳輸過來的CAN 協(xié)議格式的數(shù)據(jù)發(fā)送到CAN 總線上,發(fā)送數(shù)據(jù)程序把數(shù)據(jù)存儲區(qū)中待發(fā)送的數(shù)據(jù)取出,組成信息幀送入發(fā)送緩沖區(qū),然后啟動發(fā)送命令。

          2.2 RTL8019AS 驅(qū)動

          RTL8019AS的驅(qū)動程序包含三部分:初始化、接收數(shù)據(jù)、發(fā)送數(shù)據(jù)。

          RTL8019AS的初始化主要包括設(shè)置網(wǎng)卡的物理地址、設(shè)置相關(guān)工作模式的寄存器、接收緩沖區(qū)和發(fā)送緩沖區(qū)的各自起始地址以及大小、是否開中斷等參數(shù)等,其流程圖見圖3所示。

          在本設(shè)計中RTL8019AS采用查詢方式接收和發(fā)送數(shù)據(jù)包,通過判斷對應(yīng)的標志位來確定是否發(fā)送和接收新的數(shù)據(jù)包。在數(shù)據(jù)包的發(fā)送過程中,單片機只要通過遠程DMA寫操作,將待發(fā)送的數(shù)據(jù)包寫至發(fā)送緩沖區(qū),并啟動發(fā)送過程。在數(shù)據(jù)包的接收過程中,單片機只要通過遠程DMA讀操作,從接收緩沖區(qū)讀取數(shù)據(jù)即可。

          3 結(jié)語

          本文提出了一種低成本、高可靠性、適用于工業(yè)控制現(xiàn)場的的CAN總線與以太網(wǎng)互連網(wǎng)關(guān)的實現(xiàn)方案,該網(wǎng)關(guān)可以與工業(yè)現(xiàn)場的儀器、儀表等設(shè)備相連接在一起,使工業(yè)現(xiàn)場的設(shè)備具有網(wǎng)絡(luò)通訊的能力,大大提高了設(shè)備的性價比,從而提供生產(chǎn)效率。


          上一頁 1 2 下一頁

          評論


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

          關(guān)閉