中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁(yè) > 手機(jī)與無(wú)線(xiàn)通信 > 設(shè)計(jì)應(yīng)用 > PC機(jī)并口與現(xiàn)場(chǎng)總線(xiàn)CAN通訊的實(shí)現(xiàn)

        PC機(jī)并口與現(xiàn)場(chǎng)總線(xiàn)CAN通訊的實(shí)現(xiàn)

        ——
        作者:莊乾成,饒運(yùn)濤,江珊珊,魏雄 時(shí)間:2006-06-29 來(lái)源:Control Engineering China 收藏

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

                      


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

               (表1)

                             

         

          (表2)  

                              

         

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

          

                
         
         
               3對(duì)節(jié)點(diǎn)SJA1000的操作

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

          通訊過(guò)程中CAN數(shù)據(jù)格式為:一幀CAN報(bào)文分為信息頭和信息內(nèi)容兩部分。前5個(gè)字節(jié)為信息頭部分(如下表地址16~20),其前29位(ID0~I(xiàn)D28)為標(biāo)示符(4個(gè)字節(jié)),包含本信息包的目的地址。第5個(gè)字節(jié)是幀信息,F(xiàn)F為幀格式(0為標(biāo)準(zhǔn)幀,1為擴(kuò)展幀格式),RTR為遠(yuǎn)程幀發(fā)送請(qǐng)求(0表示發(fā)送數(shù)據(jù)幀,1表示發(fā)送遠(yuǎn)程幀),X表示無(wú)關(guān)位,最后4位DLC是數(shù)據(jù)長(zhǎng)度,即所發(fā)數(shù)據(jù)的實(shí)際字節(jié)數(shù)。其余8個(gè)字節(jié)是數(shù)據(jù)內(nèi)容部分,即為實(shí)際所發(fā)的數(shù)據(jù)。表3說(shuō)明了CAN報(bào)文數(shù)據(jù)格式(擴(kuò)展幀)。  

                              


          
               4通訊實(shí)現(xiàn)過(guò)程

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

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

               參考文獻(xiàn) 

        [1]饒運(yùn)濤,鄒繼軍,鄭勇蕓.CAN原理與應(yīng)用技術(shù)[M].北京:北京航 空航天大學(xué)出版社,2003.

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


        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉