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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > PC機并口與現(xiàn)場總線CAN通訊的實現(xiàn)

          PC機并口與現(xiàn)場總線CAN通訊的實現(xiàn)

          ——
          作者:莊乾成,饒運濤,江珊珊,魏雄 時間:2006-06-29 來源:Control Engineering China 收藏

                 本文采用機并行端口EPP(Enhanced Parallel Port)協(xié)議在Windows98系統(tǒng)下通過對操作完成對控制器SJA1000的控制,從而與同一的其他節(jié)點的。
           
                 1轉換端口電路框圖

                        


            由于SJA1000的訪問時間在40ns以內,所以在訪問SJA1000時完全可以不用插入等待周期。/Wait可以由/Addrstrobe和/Datastrobe信號經過一個與非門后產生(圖1)。由于SJA1000的A L E時下降沿鎖存地址信號,所以將/Addrstrobe反相后與ALE相連。在EPP的數(shù)據讀/寫周期時,SJA1000的/RD和/WR控制信號有效,而在地址讀/寫周期時無效。SJA1000的/RESET腳與并行端口的/RESET腳相連,由機向SJA1000提供復位信號,如果并行端口的/RESET腳不用做S J A1000的復位,則可以用作外設16位地址高低字節(jié)的選通信號。SJA1000的片選/CS腳接地,始終處于選通狀態(tài)。
           
                 2EPP端口寄存器

                 (表1)

                               

           

            (表2)  

                                

           

            上表中IRQEN:中斷使能位(1有效);ASTRB:地址選通位(0有效);INIT:初始化(1有效);DSTRB:數(shù)據選通位(0有效);WRITE:讀/寫狀態(tài)位(0:寫,1:讀)。讀取接口狀態(tài)和控制接口都只須對相應的端口寄存器進行操作。以下為Windows環(huán)境下采用VC++嵌入匯編的收和發(fā)的子程序(基地址為378h)。 

            

                  
           
           
                 3對節(jié)點SJA1000的操作

            在進行之前應先對SJA1000進行初始化,其初始化步驟依次為:a)檢測硬件連接是否正確,b)進入復位狀態(tài),c)設置時鐘分頻寄存器,d)設置輸出控制寄存器,e)設置波特率,f)設置代碼驗收寄存器,g)設置代碼屏蔽寄存器,h)設置工作模式,i)設置中斷使能寄存器,j)退出復位狀態(tài)完成初始化。

            通訊過程中CAN數(shù)據格式為:一幀CAN報文分為信息頭和信息內容兩部分。前5個字節(jié)為信息頭部分(如下表地址16~20),其前29位(ID0~ID28)為標示符(4個字節(jié)),包含本信息包的目的地址。第5個字節(jié)是幀信息,F(xiàn)F為幀格式(0為標準幀,1為擴展幀格式),RTR為遠程幀發(fā)送請求(0表示發(fā)送數(shù)據幀,1表示發(fā)送遠程幀),X表示無關位,最后4位DLC是數(shù)據長度,即所發(fā)數(shù)據的實際字節(jié)數(shù)。其余8個字節(jié)是數(shù)據內容部分,即為實際所發(fā)的數(shù)據。表3說明了CAN報文數(shù)據格式(擴展幀)。  

                                


            
                 4通訊實現(xiàn)過程

            PC機采用Visual C++建立對話框發(fā)送對象,采用主動發(fā)送方式,此時CAN中一定要有接收方存在,否則SJA1000將由于無應答而一直處于發(fā)送狀態(tài)。接收數(shù)據則采用查尋方法(VC++采用工作線程方法很容易實現(xiàn))。以下為創(chuàng)建線程及線程執(zhí)行函數(shù)(在執(zhí)行函數(shù)體中以接收數(shù)據并輸出為例,不考慮CAN總線遠程幀請求,SJA1000的基地址為0)。 
                 5結束語

            CAN總線以高抗干擾性,高速率,實時性強等優(yōu)點,被廣大顧客所青睞。本文介 紹了基于與CAN總線的轉換及通訊辦法,這些都是筆者在學習和實踐中得來,相信能對 從事相關工作的人員有一定的啟發(fā)。 

                 參考文獻 

          [1]饒運濤,鄒繼軍,鄭勇蕓.CAN原理與應用技術[M].北京:北京航 空航天大學出版社,2003.

          [2]蔡寶忠,彭吉梅.深入Visual C++編程[M].北京,中國電力出 版社,20 01


          評論


          相關推薦

          技術專區(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); })();