亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        利用MC9S12(X)單片機構(gòu)建CAN總線網(wǎng)絡(luò)的研究

        2016-08-19 21:00:26宋富強熊武馮宇飛彭思苑
        電腦知識與技術(shù) 2016年20期
        關(guān)鍵詞:CAN總線通信

        宋富強++熊武++馮宇飛++彭思苑++黃海波

        摘要:飛思卡爾MC9S12(X)單片機的控制器局域網(wǎng)(MSCAN)是一種通信控制器,介紹基于使用該單片機的MSCAN模塊構(gòu)建小型網(wǎng)絡(luò)的研究,實現(xiàn)三塊單片機的實時交互通信。三塊單片機包括一塊主控制器和兩塊輔控制器,系統(tǒng)將兩塊輔控制器掛在主控制器的CAN總線上,與主控制器進行數(shù)據(jù)交換。其中,數(shù)據(jù)包括采集的環(huán)境溫度和用電壓模擬的車速。

        關(guān)鍵詞:MC9S12(X);CAN總線;通信

        中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2016)20-0210-03

        CAN全稱為Controller Area Network,即控制器局域網(wǎng),是國際上應(yīng)用最廣泛的現(xiàn)場總線之一。最初,CAN是由德國的Bosch公司提出,被設(shè)計為汽車環(huán)境中的微控制器通信,在車載各電子控制裝置ECU之間交換信息,形成汽車電子控制網(wǎng)絡(luò)。本文按照CAN總線協(xié)議設(shè)計了一個小型的CAN總線網(wǎng)絡(luò),正文從硬件設(shè)計和軟件流程來進行闡述。

        1 硬件電路設(shè)計

        1.1 CAN接口電路

        本文采用TJA1050作為CAN總線的接口芯片,它是一種標準的高速CAN收發(fā)器,可以為總線提供差動發(fā)送性能和為CAN控制器提供差動接收性能。

        TJA1050的3引腳和2引腳分別為電源的正極和負極,連接5V電源和地。1引腳和4引腳為CAN模塊的發(fā)送和接收引腳,分別用于從CAN總線控制器中輸入發(fā)送到總線上的數(shù)據(jù)和將從總線接收的數(shù)據(jù)發(fā)送給CAN總線控制器,連接單片機的PM1和PM0引腳。7引腳和6引腳連接到CAN總線的CANH和CANL線上,信號使用差分電壓傳送,因此兩條信號線被稱為CAN_L和CAN_H。8引腳是工作模式選定引腳,該CAN接口芯片一共有高速、斜率控制和待機3種工作模式,把該引腳直接接地可選擇高速工作模式。在總線接口部分還要接一個120歐姆的匹配電阻。J_CAN是與CAN總線連接的接口。CAN總線接口電路見圖1:

        1.2 電源模塊

        電源模塊采用LM2940穩(wěn)壓芯片,將電壓從12V穩(wěn)到5V。原理圖中C11、C12、C13、C14、C15、C16分別為濾波電容,F(xiàn)11為濾波電感,D12是電源指示燈,防止指示燈被燒,串聯(lián)一個1K的電阻。其中PAD02接MC9S12(X)單片機的71引腳PAD02,采用固定電壓的AD轉(zhuǎn)換輸入。電源模塊電路圖見圖2:

        1.3 AD采集電路

        本文所設(shè)計的CAN小型網(wǎng)絡(luò)只用到兩路AD采集。因此電路圖中PAD00和PAD01分別接MC9S12(X)單片機的67腳和69腳,R44和R47采用1K的電阻,而R43和R46采用10K的電位器來進行分壓調(diào)節(jié)。AD采集電路見圖3:

        1.4 溫度傳感器模塊

        設(shè)計中,我們用的溫度傳感器是DS18B20。用DS18B20有以下幾個優(yōu)點:①獨特的單線接口方式,只需一個接口引腳即可通信;②可用數(shù)據(jù)線供電,電壓范圍:+3.0V—+5.5V;③測溫范圍:-55℃—+125℃,在-10℃—+85℃圍內(nèi)精度為范圍內(nèi)精度為+0.5℃,分辨率為0.0625℃;④通過編程可實現(xiàn)9-12位的數(shù)字讀數(shù)方式。⑤多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點測溫。溫度傳感器模塊原理圖見圖4:

        1.5 LED顯示模塊

        本設(shè)計的顯示模塊采用LCD12864液晶顯示屏,顯示的內(nèi)容有兩個輔控制器采集到的溫度和經(jīng)過兩個輔控制器AD轉(zhuǎn)換以及計算模擬出來的車速。經(jīng)過液晶屏的顯示,可以方便的知道CAN總線上的數(shù)據(jù)傳輸是否正確。LED顯示模塊原理圖見5:

        2 軟件設(shè)計

        2.1 MSCAN初始化程序的編寫

        初始化按照下列過程實現(xiàn):

        1)首先檢測MSCAN是否處于工作模式;

        2)進入初始化模式中,正在進行的任何發(fā)送或接收都會立即中止,與CAN總線失去同步。在進入初始化模式時,必須要保證MSCAN不在工作狀態(tài),否則中止正在發(fā)送的報文可能導(dǎo)致錯誤發(fā)生。在初始化模式中,雖然MSCAN被停止,但是其接口寄存器仍然可以訪問;

        1)設(shè)置相應(yīng)寄存器,依次設(shè)置CAN總線波特率、接收濾波方式、標識符接收寄存器和標識符掩碼寄存器;

        2)使能CAN模塊,設(shè)置運行模式(初始化、睡眠和工作三種模式)。MACAN初始化流程圖見圖6。

        2.2 MSCAN發(fā)送程序的編寫

        MACAN用報文來發(fā)送數(shù)據(jù),首先選擇空閑的發(fā)送緩沖區(qū),然后向該空閑緩沖區(qū)寫入數(shù)據(jù),最后設(shè)置改緩沖區(qū)的發(fā)送標志位來將報文發(fā)送至CAN總線上。因此,用戶在發(fā)送報文緩存區(qū)寫入數(shù)據(jù)前,只需要通過相應(yīng)的寄存器(CANTBSEL)設(shè)置一個指針來訪問任何一個緩沖區(qū)。此算法不僅簡化了發(fā)送緩沖器選擇功能,而且這種機制還使程序軟件處理更為簡單。

        MSCAN的發(fā)送流程:

        首先,在發(fā)送前要檢測判是否存在可用緩沖區(qū)的寄存器(CANTDLG&7)是否為0。若該寄存器(CANTDLG&7=0),則說明三個緩沖區(qū)已滿,并且報文未被發(fā)出。此時若繼續(xù)選擇向緩沖區(qū)裝填數(shù)據(jù),將導(dǎo)致先前發(fā)送的報文丟失。在沒出現(xiàn)問題的情況下,寄存器CANTDLG&7的值都為1,即存在可用的緩存區(qū)。檢測到CANTDLG&7=0,原因可能為:

        ①MSCAN還沒來得及將報文發(fā)出;

        ②總線上的節(jié)點出現(xiàn)問題,沒有及時應(yīng)答,導(dǎo)致報文發(fā)送不成功。

        ⑴若沒有可用的緩存區(qū),檢查硬件系統(tǒng)和程序是否出現(xiàn)問題,直到報文能順利發(fā)出;

        ⑵若有可用的緩沖區(qū),則使用對應(yīng)的選擇緩沖區(qū)語句“CANTBSEL=CANTFLG”,選擇相應(yīng)的發(fā)送緩沖區(qū)。若有多個緩沖區(qū)空閑時,選擇的緩沖區(qū)的序號是最小的,即用“CANTBSEL=CANTFLG”和“CANTBSEL=1”語句,MSCAN會自動選擇了第一個發(fā)送緩沖區(qū)。

        接著,要向緩存區(qū)寫入數(shù)據(jù),具體有:CPU標識符、數(shù)據(jù)段長度和需要發(fā)送的數(shù)據(jù)。數(shù)據(jù)是以報文形式裝入的,而且用何種方式寫的報文,接收也會用同樣的方式,并且還要檢測發(fā)送或者接收數(shù)據(jù)是否有誤。

        最后,將已選擇的緩沖區(qū)標記為發(fā)送,即置位發(fā)送標志“CANTFLG=CANTBSEL”,與此同時,TXE標志也會被清零。

        此后MSCAN會自動把數(shù)據(jù)裝入傳送隊列,傳送成功后將TXE置1,若用戶在先前使能發(fā)送中斷,則在此這個過程中會產(chǎn)生一個發(fā)送中斷。當然,在這個中斷過程中,發(fā)送用戶還可以繼續(xù)加載數(shù)據(jù)到發(fā)送緩沖區(qū)并重新發(fā)送。

        當然,在發(fā)送數(shù)據(jù)時也會出現(xiàn)同時有多個緩存區(qū)準備發(fā)送,這時候如果同時發(fā)送必然導(dǎo)致錯誤。為了解決這個問題,MSCAN模塊就給每個緩存區(qū)分配了一個8位的優(yōu)先級域,這就決定了在數(shù)據(jù)建立之前,用戶首先要對此域?qū)懭雰?yōu)先級。通過判斷域內(nèi)的優(yōu)先級即可判斷數(shù)據(jù)的優(yōu)先級,優(yōu)先級的值越小,則表示此緩沖區(qū)的優(yōu)先級越高。當MSCAN每次參與總線仲裁和發(fā)生發(fā)送錯誤時,都會進行內(nèi)部的數(shù)據(jù)排列。若準備發(fā)送的緩沖區(qū)不止一個,則MSCAN模塊會使用內(nèi)部的優(yōu)先級來決定先發(fā)送哪個緩沖區(qū)。

        當用戶有重要的數(shù)據(jù)需要發(fā)送時,就必須給該數(shù)據(jù)較高的優(yōu)先級。如果MSCAN的三個緩存區(qū)都在發(fā)送數(shù)據(jù)。此時,就需要三個緩存區(qū)中優(yōu)先級比較低的數(shù)據(jù)停止發(fā)送來讓優(yōu)先級比較高的數(shù)據(jù)先發(fā)送。如果優(yōu)先級低的數(shù)據(jù)發(fā)送過程不能終止,用戶就需要對相應(yīng)的寄存器中的相應(yīng)位進行設(shè)置(本單片機為CANTARQ寄存器中的ABTRQ位)來強行終止發(fā)送。

        發(fā)送流程圖見圖7:

        2.3 MSCAN 接收程序的編寫

        同MSCAN有3個發(fā)送緩沖區(qū)的發(fā)送機制類似,MSCAN有5個接收緩沖區(qū),而且這5個接收緩沖區(qū)被交替映射到單個存儲器區(qū)域CANRXFG中。同發(fā)送緩存區(qū)一樣,這種機制也簡化了應(yīng)用軟件的編寫,提高了接收數(shù)據(jù)的效率。

        接收已滿標志CANRFLG寄存器的RXF位指示了前臺接收緩沖區(qū)的狀態(tài),當緩沖區(qū)中有正確的報文被接收時就設(shè)置接收已滿標志,即將RXF置1。報文的接收有兩種方式:中斷接收和查詢接收。接收時,首先要檢查每條報文的標識符是否通過濾波器。如果標識符通過了濾波器,就將有效的報文寫入后臺接收緩存器中,MSCAN將后臺接收緩沖器中的報文內(nèi)容轉(zhuǎn)移到前臺接收緩沖器中,并設(shè)置接收已滿標志(CANRFLG寄存器的RXF位)。而接收報文時必須從前臺接收緩沖器讀取報文,接收完后,將接收器已滿標志(CANRFLG寄存器的RXF位)清零來釋放前臺接收緩沖器。而背景臺接收緩沖器接收到無效的報文時,該報文會被下一條覆蓋。用戶的中斷服務(wù)程序可以把數(shù)據(jù)從前臺緩沖區(qū)讀出,并置位RXF標志以響應(yīng)中斷并釋放前臺緩沖區(qū)。

        MSCAN接收流程:

        ①首先,要檢測接收器已滿標志(CANRFLG寄存器的RXF位),當接收器已滿標志(CANRFLG寄存器的RXF位)置1時,表示接收緩沖器接收到了正確的報文;

        ②然后,檢測 CAN協(xié)議報文的模式,讀標識符,讀取數(shù)據(jù)長度,讀取數(shù)據(jù);

        ③最后,清接收器已滿標志(CANRFLG寄存器的RXF位),以便接收下一個報文。

        注意:對報文的檢測和讀取一定要在清接收器已滿標志(CANRFLG寄存器的RXF位)之前進行,否則該報文會被下一個報文覆蓋,從而丟失信息。讀取報文流程圖見圖8:

        3 系統(tǒng)測試與總結(jié)

        經(jīng)過一段時間的研究與設(shè)計,終于將“利用飛思卡爾MC9S12(X)單片機構(gòu)建CAN總線小型網(wǎng)絡(luò)”這個課題做完并經(jīng)過了測試。測試過程中,利用了CAN總線構(gòu)建了3個節(jié)點的小型網(wǎng)絡(luò),實現(xiàn)了對溫度和用電壓模擬的速度這些數(shù)據(jù)進行了測量、傳輸和顯示。測量工具有:示波器、萬用表、溫度計、秒表等。經(jīng)過測試,利用飛思卡爾MC9S12(X)單片機CAN總線構(gòu)建的小型網(wǎng)絡(luò)工作狀態(tài)良好,通信無誤且具有實時性,達到了預(yù)期的目標。

        參考文獻:

        [1]馮沖,段曉敏.飛思卡爾MC9S12(X)開發(fā)必修課[M].北京航空航天大學(xué)出版社,2014.

        [2]羅峰,孫澤昌.汽車CAN總線系統(tǒng)原理、設(shè)計與應(yīng)用[M].電子工業(yè)出版社,2010.

        猜你喜歡
        CAN總線通信
        論網(wǎng)絡(luò)通信技術(shù)
        基于嵌入式的汽車輔助制動系統(tǒng)研究
        CAN總線通信技術(shù)在電梯監(jiān)控系統(tǒng)中的應(yīng)用
        基于“一級調(diào)度、兩級運維”的通信管理體系研究①
        科技資訊(2016年19期)2016-11-15 10:10:38
        計算機技術(shù)在通信中的應(yīng)用
        簡述計算機通信網(wǎng)絡(luò)安全與防護策略
        Android環(huán)境下主UI線程與子線程通信機制研究
        無線自組網(wǎng)在野戰(zhàn)防空通信系統(tǒng)中的應(yīng)用
        基于CANoe的J1939協(xié)議在ECU通信中的應(yīng)用
        科技視界(2016年18期)2016-11-03 22:53:48
        商用車基于CAN總線的組合儀表開發(fā)與應(yīng)用
        japanese色国产在线看视频| 亚洲人精品午夜射精日韩| 无码人妻一区二区三区免费视频 | 国产草逼视频免费观看| 艳妇臀荡乳欲伦交换h在线观看| 久久久www成人免费精品| 精品乱码卡1卡2卡3免费开放| 中文亚洲成a人片在线观看| 日本在线观看三级视频| 国产精品女主播福利在线| 亚洲av日韩av天堂久久| 最近日本中文字幕免费完整| 日韩成人精品日本亚洲| 中文字幕人成乱码中文| 亚洲视频免费一区二区| 久久午夜无码鲁丝片午夜精品| 久无码久无码av无码| 97超级碰碰碰久久久观看| 白浆高潮国产免费一区二区三区| 日本一区二区国产精品| 日本va欧美va精品发布| 末发育娇小性色xxxxx视频| 亚洲成a人网站在线看| 国产自拍精品在线视频| 91成人自拍国语对白| 狠狠色婷婷久久一区二区三区| 精品欧美一区二区在线观看| 国产精品一级av一区二区 | 97超碰精品成人国产| 成人乱码一区二区三区av| aaaaa级少妇高潮大片免费看| 最新永久免费AV网站| 亚洲天堂av黄色在线观看| 呦系列视频一区二区三区| 午夜精品久久久久成人| 亚洲一区二区三区av在线免费| 青青青草视频手机在线| 极品粉嫩小仙女高潮喷水网站| 我把护士日出水了视频90分钟| 亚洲av日韩av综合aⅴxxx| 亚洲精品99久91在线|