日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 數(shù)控同步現(xiàn)場總線與CAN總線網(wǎng)關的設計

          數(shù)控同步現(xiàn)場總線與CAN總線網(wǎng)關的設計

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

          點擊放大圖片

          NCSF數(shù)據(jù)幀頭部長18字節(jié),圖4為NCSF數(shù)據(jù)幀的頭部結(jié)構。EthAREA六個字節(jié)填充0xFF,使NCSF幀能夠通過以太網(wǎng)交換設備;幀的總長度G_Length;兩個全局控制字G_CTRLI和G_CTRL2;①數(shù)據(jù)幀標識G_mtype;②幀類型標識G_stype;③從站計數(shù)器G_sno。

          點擊放大圖片

          圖4 NCSF幀頭部結(jié)構

          在DM9000的設備驅(qū)動和NCSF協(xié)議中,為了方便管理每個NCSF數(shù)據(jù)包及其控制信息,特設計數(shù)據(jù)結(jié)構ncsf buff。

          點擊放大圖片

          在ncsf buff中next和prey使所有需發(fā)送的數(shù)據(jù)包構成一個雙向鏈表;cb為數(shù)據(jù)包狀態(tài)控制字,保存此數(shù)據(jù)包當前的狀態(tài)和控制信息,ncsf buff中最重要的幾個成員變量為head、data、tail和end,這四個成員變量指向同一連續(xù)內(nèi)存區(qū)域的不同位置,其結(jié)構和關系如圖5所示。

          點擊放大圖片

          圖5 ncsf_buff數(shù)據(jù)結(jié)構

          在創(chuàng)建nesf_buff的同時會申請一段足夠容納最大的NCSF數(shù)據(jù)幀2倍的連續(xù)內(nèi)存,head指向這一塊內(nèi)存的首地址,end指向其尾部,data指向head+LEN的位置,在tail和data之間是NCSF有效數(shù)據(jù),即在data前預留LEN長空閑空間,以便在此有效數(shù)據(jù)前擴展數(shù)據(jù)包頭部和其它數(shù)據(jù),tail預留的空閑空間用于在尾部擴展有效數(shù)據(jù)。有效數(shù)據(jù)區(qū)前后預留的空閑空間可以避免在數(shù)據(jù)包擴展時重新分配內(nèi)存和拷貝相關數(shù)據(jù),由此提高了發(fā)送接收數(shù)據(jù)包的速度。

          3.2 CAN總線接口模塊

          MPC2515是一款獨立的CAN控制器,完全支持CAN2.0B技術規(guī)范。該器件能夠收發(fā)標準和擴展的數(shù)據(jù)幀以及遠程幀。MPC2515自帶兩個驗收屏蔽寄存器、六個驗收濾波寄存器,這些寄存器用于過濾不必要接收的報文,它們可以有效降低微控制器的負擔。MPC2515和S3C2440之間的連接通過SPI實現(xiàn)。

          圖6中特別畫出CAN模塊的電源電路,為了增強CAN總線的抗干擾能力,MCP2515與總線收發(fā)器TJAl050之間采用高速光電耦合器6N137相連以實現(xiàn)電氣隔離,而為了實現(xiàn)完全的電器隔離,6N137兩端的電源也應該進行完全隔離,B0505S為它們提供了完全隔離的電源。

          點擊放大圖片

          圖6 CAN模塊電路簡圖

          S3C2440通過特定的SPI命令與MPC2515進行交互,命令包含復位、讀、寫、讀RX緩沖器、裝載TX緩沖器、請求發(fā)送報文、讀狀態(tài)和位修改命令等。通過這些命令S3C2440可以讀寫CAN控制器的狀態(tài)、發(fā)送CAN數(shù)據(jù)幀,以及重置CAN控制器。S3C2440通過SPI向MPC2515發(fā)出每個命令字節(jié)前,CS都需要被置為低電平。在任何操作期間CS都要保持低電平,操作完成后需要把CS置為高電平。

          CAN模塊的初始化依次為:軟件復位、設置CAN總線的波特率、關閉中斷、設置驗收屏蔽寄存器和驗收濾波寄存器、切換MPC2515到正常模式、清空接收和發(fā)送寄存器,最后開啟相應的中斷。

          點擊放大圖片

          點擊放大圖片

          can_frame是CAN數(shù)據(jù)幀發(fā)送隊列的數(shù)據(jù)結(jié)構。為了能夠兼容CAN擴展報文接收,在can_frame中ext_f標志為0表示為正常報文,為1表示為擴展報文;rtr_f對應數(shù)據(jù)幀仲裁場中的RTR位;pri為報文的優(yōu)先級。為0按照先入先出順序出隊,少數(shù)緊急指令為1,此報文優(yōu)先出隊被發(fā)送。



          評論


          技術專區(qū)

          關閉