999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于TMS320 LF2407A在CAN總線上的應(yīng)用研究

2008-01-01 00:00:00鄭旭浩
現(xiàn)代商貿(mào)工業(yè) 2008年4期

摘 要:介紹了以DSP(TMS320F2407A)和收發(fā)器SN65HVD230D為主體所構(gòu)成的控制模塊在CAN總線上的應(yīng)用。詳細(xì)分析了實(shí)時(shí)操作系統(tǒng)uC/OS-II在DSP中的移植,從而提高系統(tǒng)的實(shí)時(shí)性和軟件的運(yùn)行效率。

關(guān)鍵詞:CAN總線;TMS320F2407A;接口技術(shù);uC/OS-II,嵌入式操作系統(tǒng) 

中圖分類(lèi)號(hào):TP202文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1672-3198(2008)04-0224-03

1 引言

CAN,全稱為“Controller Area Network”,即控制器局域網(wǎng),是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一。CAN是一種多種方式的串行通訊總線,基本設(shè)計(jì)規(guī)范要求有高的位速率,高抗電磁干擾性,而且能夠檢測(cè)出任何錯(cuò)誤。 由于CAN總線具有很高的實(shí)時(shí)性能,因此,CAN已經(jīng)在汽車(chē)工業(yè)、航空工業(yè)、工業(yè)控制、安全防護(hù)等領(lǐng)域中得到了廣泛應(yīng)用。

TMS320LF2407A是美國(guó)TI公司生產(chǎn)的一種定點(diǎn)DSP芯片,它采用增強(qiáng)的C2xx CPU內(nèi)核結(jié)構(gòu),代碼與24x系列的芯片兼容。與24X系列的DSP芯片相比,TMS320LF2407A采用3.3 V電源供電,功耗更低;CPU時(shí)鐘頻率可達(dá)40MHz,速度更快,EVM板可對(duì)LF2407代碼進(jìn)行全速檢查,其中有544個(gè)字長(zhǎng)的片上數(shù)據(jù)存儲(chǔ)器、128K字長(zhǎng)的板上存儲(chǔ)器、片上只讀閃爍存儲(chǔ)器,片上UART和一個(gè)MP7680/A轉(zhuǎn)換器, 可分別尋址程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器以及I/O各 64位空間和兩個(gè)事件管理模塊 EVA和EVB,各有兩個(gè)16位的通用定時(shí)器。板上安裝的器件可使評(píng)估板解決各類(lèi)問(wèn)題,4個(gè)擴(kuò)展接口,可提供任何評(píng)估電路。TMS320LF2407A中含有一個(gè)支持CAN 2.0B協(xié)議的CAN控制器,支持標(biāo)準(zhǔn)和擴(kuò)展標(biāo)識(shí)襯;支持兩種信息幀格式,即數(shù)據(jù)幀和遠(yuǎn)程幀,可以自動(dòng)應(yīng)答遠(yuǎn)程幀的請(qǐng)求,當(dāng)出現(xiàn)錯(cuò)誤或仲裁失敗時(shí),具有自動(dòng)重發(fā)數(shù)據(jù)功能。本文主要介紹使用TMS320LF2407A進(jìn)行CAN通信時(shí)硬件和軟件方面的設(shè)計(jì)。

2 DSP功能介紹

本系統(tǒng)采用的TMS320LF2407A微處理器主要包括以下一些功能模塊:

(1)一個(gè)32位的中央算術(shù)邏輯單元(CALU)。

(2)一個(gè)32位的累加器(ACC)。

(3) CALU的輸入和輸出定標(biāo)移位器。

(4)一個(gè)乘積定標(biāo)移位器(PSCALE )。

(5)8個(gè)輔助寄存器(ARO-AR7 )。

(6)一個(gè)輔助寄存器算術(shù)單元(ARAU),該模塊提供了靈活而強(qiáng)大的間接尋址能力。

(7)還有兩個(gè)狀態(tài)寄存器ST0和ST1,它們包含有決定處理器工作方式、頁(yè)地址指針值以及指示處理器不同條件和算術(shù)邏輯運(yùn)算結(jié)果的位。

(8)TMS320LF2407A的16X16位乘法器是由寄存器TREG, PREG和一個(gè)硬件乘法器構(gòu)成。其中TREG是臨時(shí)寄存器,在作乘法運(yùn)算時(shí)用來(lái)存儲(chǔ)一個(gè)乘數(shù),而PREG則是結(jié)果寄存器,存儲(chǔ)乘法運(yùn)算所產(chǎn)生的結(jié)果。

(9)TMS320LF2407A具有8級(jí)硬件堆棧。當(dāng)子程序調(diào)用或中斷發(fā)生時(shí),程序地址產(chǎn)生邏輯把堆棧用于存儲(chǔ)返回地址或其它的一些參數(shù)。當(dāng)子程序調(diào)用或中斷服務(wù)子程序完成時(shí),返回指令將從堆棧頂返回地址或參數(shù)送到CPU寄存器中去。

3 CAN的接口

DSP芯片TMS320LF2407A中集成了一個(gè)CAN控制器,CAN接口線提供額外的高速竄行借口,其中有1個(gè)4針mini-DIN母接口,它可以用來(lái)連接CAN接口,接口管腳輸出如圖1; 管腳的定義如表1:

4 收發(fā)器的選擇

CAN總線以其較高的通訊速率、良好的抗電磁干擾能力可實(shí)現(xiàn)高可靠性串行通信,因而在實(shí)際應(yīng)用中具有極高的應(yīng)用價(jià)值。但是,隨著集成技術(shù)的不斷發(fā)展,為了節(jié)省功耗,縮小電路體積,一些新型CAN總線控制器的邏輯電路平均采用LVTTL,這就需要與之相適應(yīng)的總線收發(fā)器。文獻(xiàn)中介紹最多的CAN總線收發(fā)器是Philip公司生產(chǎn)的820250,它與CAN總線控制器SGA1000配合使用時(shí)非常方便,但由于它使用5V電源供電,而DSP芯片TMS320LF2407A采用3.3V電源供電,將兩者配合使用時(shí),中問(wèn)要加電平轉(zhuǎn)換電路,為電路的設(shè)計(jì)帶來(lái)了不便。TI公司生產(chǎn)的SN65HVD230X型電路很好地解決了這個(gè)問(wèn)題。它是采用3.3 V電源,有很高的輸入阻抗,總線上最多可連120個(gè)節(jié)點(diǎn),ESD保護(hù)超過(guò)16KV, 溫度升高到一定值時(shí),總線自動(dòng)關(guān)閉,節(jié)點(diǎn)上電或移去對(duì)總線上的其它節(jié)點(diǎn)沒(méi)有影明,技術(shù)標(biāo)準(zhǔn)兼容1S011898。我選取的即是SN65HVD230D,它的引腳排位及邏輯功能如圖2所示。

5 軟件系統(tǒng)的設(shè)計(jì)

本文采用的是由Jean J.Labrosse編寫(xiě)的開(kāi)放式實(shí)時(shí)操作系統(tǒng)uC/OS-II,主要是基于以下的考慮:(1)它的內(nèi)核是完全免費(fèi)的。用戶不需支付任何費(fèi)用,有利于降低系統(tǒng)開(kāi)發(fā)成本。(2)它的源代碼是公開(kāi)的,并且仍在不斷的升級(jí),增加新功能。源代碼的開(kāi)放可以使得用戶根據(jù)實(shí)際要求對(duì)源代碼進(jìn)行取舍,去掉不必要的變量和不使用的函數(shù),提高系統(tǒng)性能。另外,由于對(duì)系統(tǒng)內(nèi)核有源代碼級(jí)的了解,用戶可以添加自己的模塊,與原有系統(tǒng)內(nèi)核兼容,使得系統(tǒng)具有可擴(kuò)展性。(3)系統(tǒng)內(nèi)核實(shí)用性強(qiáng)、可靠性高。從最老版本的uCOS,以及后來(lái)的uC/OS,到最新版本的uC/OS-II,該實(shí)時(shí)內(nèi)核已經(jīng)走過(guò)了近10年的歷程。10年來(lái),世界上已有數(shù)千人在各個(gè)領(lǐng)域使用了該實(shí)時(shí)內(nèi)核,如醫(yī)療器械、網(wǎng)絡(luò)設(shè)備、自動(dòng)提款機(jī)、工業(yè)機(jī)器人等等。這些應(yīng)用的實(shí)踐是該內(nèi)核實(shí)用性、無(wú)誤性的最好證據(jù)。(4)操作系統(tǒng)內(nèi)核對(duì)處理器以及ROM, RAM資源的要求不高,有利于在8位處理器上的移植。(5)它可以為嵌入式TCP/IP協(xié)議需要提供對(duì)多用戶的支持。

5.1 操作系統(tǒng)uC/OS-II在TMS320LF2407A的移植

雖然uC/OS-II大部分的代碼是用C語(yǔ)言寫(xiě)的,但仍需要用匯編語(yǔ)言寫(xiě)一些與處理器相關(guān)的代碼,這是因?yàn)閡C/OS-II在讀寫(xiě)處理器、寄存器時(shí)只能通過(guò)匯編語(yǔ)言來(lái)實(shí)現(xiàn)。 

5.2 移植工作介紹

uC/OS-II的移植工作主要就是修改C語(yǔ)言頭文件OS_CPU.H.C語(yǔ)言源文件OS_CPU-C.C和匯編語(yǔ)言文件OS_CPU_A.ASM。

①移植頭文件OS_CPU.H。

為了確保其可移植性u(píng)C/ OS- II不使用C語(yǔ)言中的short;int;long等與編譯器相關(guān)的數(shù)據(jù)類(lèi)型,而是定義了一系列可移植又很直觀的數(shù)據(jù)類(lèi)型如:INT8U,INT16S,INT328等這部分工作在C語(yǔ)言頭文件OS_CPU.H中實(shí)現(xiàn)。應(yīng)該指出的是,雖然在移植過(guò)程中將uC/ OS- II數(shù)據(jù)類(lèi)型BOOLEAN,INT8U,INT8S分別定義為unsigned char和signed char類(lèi)型,但是由于TMS320LF2407A內(nèi)核與數(shù)據(jù)總線寬度都是16bit,所以這幾種類(lèi)型的數(shù)據(jù)實(shí)際上都要占用一個(gè)16bit字的內(nèi)存。頭文件OS_CPL.H另一個(gè)主要內(nèi)容是定義用于臨界段代碼保護(hù)的兩個(gè)宏OS_INTER_CRITICAL()和OS EXITCRITICAL().

②移植匯編文件OS_CPU_A.ASM。

OS_CPU_A.ASM文件中包括有四個(gè)函數(shù)都涉及對(duì)寄存器的處理,其跟處理器有關(guān),由于不同的處理器有不同的寄存器,所以操作系統(tǒng)在這個(gè)文件里給用戶留下四個(gè)函數(shù)接口,以便用戶根據(jù)所選處理器編寫(xiě)相應(yīng)的程序以完成固定的功能.四個(gè)函數(shù)分別是OSStartHighRdy(),OSCtxSw(),OSIntCtxSw(),OSTickISR()。

③OSStartHighRdy()函數(shù)的實(shí)現(xiàn)。

OSStartHighRdy()函數(shù)是一個(gè)高優(yōu)先級(jí)就緒任務(wù)啟動(dòng)函數(shù),主要是將任務(wù)棧中的保存值彈回到CPU寄存器中,然后執(zhí)行返回指令,中斷返回指令強(qiáng)制執(zhí)行該任務(wù)代碼,實(shí)現(xiàn)多任務(wù)啟動(dòng)。 

④OSCTxSw()和OSIntCtxSw()函數(shù)的實(shí)現(xiàn)。

OSCtxSw()和OSIntCtxSw()都是任務(wù)切換函數(shù),不同的是后者為中斷級(jí)任務(wù)切換函數(shù),由于后者是在ISR中被調(diào)用的,所以需要調(diào)整堆棧指針SP去掉在調(diào)用OSIntExit(),OSIntCtxSw()過(guò)程中壓入堆棧的多余內(nèi)容。它們的主要功能是將要掛起的任務(wù)的寄存器值保存起來(lái),將要執(zhí)行的任務(wù)的寄存器的內(nèi)容恢復(fù)。

OSCtxSw()該函數(shù)完成的是任務(wù)級(jí)的任務(wù)切換工作。其目的是為了保證處理器永遠(yuǎn)運(yùn)行就緒表中優(yōu)先級(jí)最高的任務(wù),這跟OSStartHighRdy()類(lèi)似。然而,后者是由OSStart()調(diào)用的,只是執(zhí)行啟動(dòng)多任務(wù)的功能,而OSCTxSw()是在任務(wù)調(diào)度函數(shù)OSSched()通過(guò)宏定義OS TASKse SW()調(diào)用的,執(zhí)行的是多任務(wù)的調(diào)度功能:不僅要使得高優(yōu)先級(jí)任務(wù)得以恢復(fù)運(yùn)行,還得將待切換出去的任務(wù)保存起來(lái),兩者的差別也可以從程序的處理過(guò)程比較出來(lái)。

⑤OSTickISR()函數(shù)的實(shí)現(xiàn)。

OSTickISR()是用定時(shí)器1產(chǎn)生一個(gè)周期為25毫秒的時(shí)鐘源提供給uC/OS-II,這是uC/OS-II時(shí)間延遲和超時(shí)功能的時(shí)間基準(zhǔn)。OSTickISR()是該定時(shí)器周期中斷的中斷服務(wù)程序。它主要有兩個(gè)功能:一個(gè)是調(diào)用OSTimeTick()函數(shù),計(jì)算自系統(tǒng)上電以來(lái)所經(jīng)歷的時(shí)鐘節(jié)拍數(shù),并將每個(gè)處延時(shí)等待狀態(tài)的任務(wù)的OSTCSDly項(xiàng)減1:另一個(gè)是調(diào)用。OSIntEXit()函數(shù)察看是否有更高優(yōu)先級(jí)的任務(wù)因時(shí)鐘節(jié)拍到來(lái)而延遲時(shí)間并進(jìn)入就緒態(tài),如果有則進(jìn)行中斷級(jí)的任務(wù)切換。另外,在該函數(shù)的入口處要將OSIntNesting加1;在出口處將OSIntNesting減1。

5.3 語(yǔ)言源文件OS_CPU_C.C文件的修改

UC/OS-II的移植需要修改該文件中的10個(gè)C函數(shù)OS-TaskStkInit; OSTaskCreateHook; OSTaskDeHIook;OS-TaskSwHook;OSTaskIdleHook;OSTaskStatHook;OS-TimeTickHook; OSInitHookhenin;OSInitHookEnd;OSTCBInitHook。其中只有函數(shù)OSTaskStkInit()修改是必要的,其它函數(shù)是為了方便用戶擴(kuò)展而設(shè)的,可以定義為空。OSTaskStklnit()用于系統(tǒng)創(chuàng)建用戶任務(wù)時(shí),建立并初始化任務(wù)堆棧。該函數(shù)和處理器的硬件體系密切相關(guān),它將所需的寄存器入棧,返回新堆棧的棧頂?shù)牡刂罚⑺鼈儽4嬖谠撊蝿?wù)的任務(wù)控制塊OS_TCB中,最終使初始化后的堆棧跟剛發(fā)生過(guò)一次中斷一樣。這樣,系統(tǒng)無(wú)需對(duì)調(diào)度程序作特殊的處理即可直接對(duì)新任務(wù)進(jìn)行調(diào)度。

6 結(jié)論

CAN總線因具有通信方式靈活、實(shí)時(shí)性好、可靠性高,通信距離遠(yuǎn)、傳輸速度快等優(yōu)點(diǎn)被廣泛地應(yīng)用于航空、航海、汽車(chē)以及各種工業(yè)自動(dòng)化控制系統(tǒng).而DSP芯片內(nèi)嵌了16通道的A/D轉(zhuǎn)換模塊,因此凡是適用于CAN總線通信的研究, TMS320LF2407A基本上也都應(yīng)用.而且它的功能,比使用單片機(jī)的效率要高得多。在軟件設(shè)計(jì)上,采用了嵌入式操作系統(tǒng)作為軟件開(kāi)發(fā)平臺(tái),從而為用戶提供良好的人機(jī)交互方式和較強(qiáng)的應(yīng)用程序接口,進(jìn)一步提高系統(tǒng)的實(shí)時(shí)性和軟件的運(yùn)行效率,以嵌入式操作系統(tǒng)和DSP相結(jié)合的開(kāi)發(fā)平臺(tái)可以滿足實(shí)時(shí)測(cè)控系統(tǒng)的需求。以上系統(tǒng)已經(jīng)在長(zhǎng)春工業(yè)大學(xué)智能檢測(cè)實(shí)驗(yàn)室實(shí)際調(diào)試通過(guò),并可跟據(jù)不同的需求作擴(kuò)展。

參考文獻(xiàn)

[1]陽(yáng)憲惠.現(xiàn)場(chǎng)總線技術(shù)及其應(yīng)用[J].清華大學(xué)出版社,1999.

[2]劉和平.TMS320LF240X DSP結(jié)構(gòu)、原理及應(yīng)用[M].北京:北京航空航人大學(xué)出版社,2002.

[3]遲瑞娟,曹正清.基于CAN總線的整車(chē)管理系統(tǒng)硬件設(shè)計(jì)[N].中國(guó)農(nóng)業(yè)大學(xué)學(xué)報(bào),2002, 7 (4):91-94.[4]鄰寬明.CAN總線原理和應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1996.

[5]Jean J.Labross-e著,邵貝貝等譯.嵌入式實(shí)時(shí)操作系統(tǒng)uC/OS-II(第2版)[M].北京:北京航空航人人學(xué)出版社,2003.

注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。

主站蜘蛛池模板: 午夜a视频| 亚洲水蜜桃久久综合网站| 久一在线视频| 免费看美女毛片| 国产精品无码作爱| 97se亚洲综合在线| 福利小视频在线播放| 国产丝袜第一页| 91色国产在线| 亚洲欧美极品| 午夜国产在线观看| 萌白酱国产一区二区| 99久久国产综合精品2020| 国产亚洲精品yxsp| 日韩午夜福利在线观看| Jizz国产色系免费| 国产青青草视频| 热re99久久精品国99热| 亚洲欧美日韩精品专区| 日韩精品无码免费一区二区三区| 免费在线国产一区二区三区精品| 亚洲欧美在线看片AI| 精品乱码久久久久久久| 日本午夜网站| 亚洲av中文无码乱人伦在线r| 精品欧美日韩国产日漫一区不卡| 色老二精品视频在线观看| 91娇喘视频| 香蕉视频在线观看www| 亚洲欧美人成电影在线观看| 婷婷开心中文字幕| 成人av手机在线观看| 9啪在线视频| 成人午夜亚洲影视在线观看| 伊人丁香五月天久久综合| 67194亚洲无码| 日韩高清欧美| 国产无吗一区二区三区在线欢| 亚洲毛片在线看| 国产成人亚洲精品无码电影| 伊人91在线| 午夜精品久久久久久久无码软件| 久久精品一品道久久精品| 久久国产热| 国产美女叼嘿视频免费看| 99热这里只有精品2| 亚洲无码四虎黄色网站| 在线欧美国产| 天天综合网亚洲网站| 无码一区18禁| 久无码久无码av无码| 无码aaa视频| 亚洲中文字幕国产av| 亚洲天堂网在线播放| 一区二区三区四区精品视频 | 69免费在线视频| 亚洲欧美在线看片AI| 中文字幕永久在线看| 高清视频一区| 免费啪啪网址| 国产成人精品第一区二区| 91口爆吞精国产对白第三集| 午夜毛片免费看| 伊人久久青草青青综合| 美女一区二区在线观看| 国产毛片高清一级国语 | 免费在线看黄网址| 成人一级免费视频| 婷婷色中文网| 国模在线视频一区二区三区| 亚洲另类色| 国产在线精彩视频论坛| 国产欧美在线观看精品一区污| 国产成人永久免费视频| 欧美乱妇高清无乱码免费| 操操操综合网| 日韩高清中文字幕| 国产成人av一区二区三区| 亚洲高清中文字幕在线看不卡| 日韩毛片免费视频| 热久久综合这里只有精品电影| 亚洲人成电影在线播放|