在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于μC/OS-II和TMS320LF2407A實現集散式數據采集系統的設計

電子設計 ? 來源:微計算機信息 ? 作者:鐘堅文,蔡旭 ? 2021-06-21 15:19 ? 次閱讀

應用實時多任務操作系統RTOS)作為嵌入式設計的基礎和開發平臺將成為嵌入式應用設計的主流。μC/OS-II是一種源碼公開、可移植性、可固化、可裁剪、占先式的實時多任務操作系統,目前已經得到廣泛的應用。

在為電力系統接地選線裝置開發的數據采集監測系統的設計中,設計了集散式的數據采集結構,靈活的組態適應了目前國內多數中低壓輸配電網的數據采集需求。在此硬件平臺上,將實時操作系統μC/OS-II移植到TMS320LF2407A型號的DSP上,實現了多任務的并行執行,系統的可靠性和實時性得到大幅提升;設計了CAN總線驅動程序,使得下位采集處理模塊與上位的主控制器具備了可靠快速的通信功能和協調功能。

1.集散式的數據采集系統設計

系統的整體結構如圖1所示:

圖1集散式選線系統整體結構

圖中反映出目前變電站常見的網絡結構。一般的基于集中式數據采集方式在應用上存在一定的缺點,比如針對不同變電站實際情況配置不夠靈活等。而基于集散式的數據采集系統卻具有系統適應能力強,組態方便,可靠性高等優點。因此,根據變電站網絡的這種結構,本裝置設計采用集散式數據采集的方式,即在每條支路上均掛接一個獨立的智能數據采集及處理模塊負責實時采集和數據預處理;主控制器與各智能采集處理模塊通過CAN現場總線進行通訊,從而不僅實現主控的功能,還具備靈活的集散擴充性能。

2.CAN總線接口的設計

在各種現場總線網絡中,最早為汽車電子設備互連而開發的CAN總線由于其簡單靈活的配置以及強大的實時控制和檢錯糾錯能力而在諸多自動化領域中得到了廣泛的使用。

美國TI公司DSP產品線中的2000系列是專為工業控制應用設計的數字信號處理器,具有強大的數字信號處理能力,還集成了豐富的外設和I/O,成為現代電機控制、電力系統自動化等應用中很好選擇。在這款DSP處理器上,自帶了兼容CAN2.0B標準的CAN總線控制器,因此只需外接一片CAN總線收發芯片即可使模塊具有完整的CAN總線通信能力,在此使用支持1Mbps的PCA82C250收發器芯片,接口設計見圖2。

圖2采集模塊CAN總線接口

3.μC/OS-II在2407上的移植

絕大部分μC/OS-II的源碼是用移植性很強的ANSIC寫的,只有和微處理器硬件相關的那部分是用匯編語言寫的。而TI公司提供的編譯器CodeComposerStudio(C2000)V2.20支持C語言和匯編語言開發,筆者在此編譯器的基礎上完成了μC/OS-II的移植。移植工作主要集中在三個文件的修改工作:修改頭文件OS_CPU.H相關的內容,包括:數據類型定義、堆棧增長方向、中斷相關的一些宏定義等;OS_CPU_C.C中編寫任務堆棧初始化函數及系統HOOK函;OS_CPU_A.ASM中編寫四個匯編語言函數:OSStartHighRdy(),OSCtxSw(),OSIntCtxSw()和OsTickISR()。

具體移植過程由于不是本文重點,恕筆者不再詳述。

4.基于緩沖隊列支持下的CAN總線驅動程序設計

驅動程序是連接底層的硬件和上層的API函數的紐帶,有了驅動程序模塊,就可以把操作系統的API函數和底層的硬件分開來。任何一個硬件的改變、刪除或者添加,只需要隨之改變、刪除或者添加提供給操作系統的相應的驅動程序就可以了,并不會影響到API函數的功能,更不會影響到用戶的應用程序。同時,為了保證在實時多任務操作系統中,對硬件訪問的唯一性,系統的驅動程序要受控于相應的操作系統的多任務之間的同步機制。

(1)μC/OS-II的通信機制

μC/OS-II在處理任務之間的通信和同步的時候,主要通過以下幾種方式:信號量(Semaphore),郵箱(Mailbox),消息隊列(Queue)和互斥信號量(Mutex)。具體的通過事件控制塊(ECB)來實現。μC/OS-II中定義的數據結構OS_EVENT能夠維護任務間通信和同步的所有信息,該數據結構不僅包含了事件本身的定義,如信號量的計數器、指向郵箱的指針、指向消息隊列的指針數組、互斥量中能否獲得資源的Flag和正在使用該互斥量的任務,還定義了等待該事件的所有任務列表。事件發生后,等待的優先級最高的任務進入就緒態。

(2)緩沖隊列的設計和通信任務的配合

微機系統中,一般串行設備或者其他字符型設備都存在外設處理速度和CPU速度不匹配的問題,所以需要建立相應的緩沖區。向CAN口發送數據時,只要把數據寫到緩沖區,然后由CAN控制器逐個取出往外發送。從CAN口接收數據時,往往等收到若干個字節后才需要CPU進行處理,所以這些預收的數據可以先存在緩沖區。緩沖區可以設置收到若干個字節后再中斷CPU,這樣就避免了因為CPU的頻繁中斷而降低系統的實時性。

在對緩沖區讀寫的過程中,經常會遇到想發送數據的時候,緩沖區已滿;想去讀的時候,接受緩沖卻是空的。對于用戶程序端,采用傳統的查詢工作方式,頻繁的讀取使得程序效率大為降低。如果引入讀、寫兩個信號量分別對緩沖區兩端的操作進行同步,問題自然解決:用戶任務想寫但緩沖區滿時,在信號量上休眠,讓CPU運行別的任務,待ISR從緩沖區讀走數據后喚醒這個休眠的任務;類似的,用戶任務想讀但緩沖區空時,也可以在信號量上休眠,待外部設備有數據來了再喚醒。其中,μC/OS-II的信號量提供了超時等待機制,CAN端口本身也有超時讀寫能力。

接受和發送的數據緩沖區數據結構定義如下:

typedefstruct{

INT16UBufRxCtr;//接受緩沖中的字符的數目

OS_EVENTBufRxSem;//接受信號量

INT8UBufRxInPtr;//接收緩沖中下一個字符的寫入位置

INT8UBufRxOutPtr;//接收緩沖中下一個待讀出字符的位置

INT8UBufRx[CAN_BUF_SIZE];//接收環形緩沖區的大小

INT16UBufTxCtr;//發送緩沖中字符的數目

OS_EVENTBufTxSem;//發送信號量

INT8UBufTxInPtr;//發送緩沖中下一個字符的寫入位置

INT8UBufTxOutPtr;//發送緩沖中下一個待讀出字符的位置

INT8UBufTx[CAN_BUF_SIZE];//發送環形緩沖區的大小

}CAN_BUF;

其他接口函數如下:

VoidCanInitHW();//設置CAN控制器端口中斷向量

VoidCANSendMsg();//向CAN控制器端口發送數據

VoidCANReceiveMsg();//從CAN控制器端口接受數據

圖3基于緩沖隊列的CAN通信過程

基于緩沖隊列支持下的CAN通信任務通信過程如圖3所示。

在該通信任務中,采用查詢方式發送,中斷方式接收,任何時候只要沒有關中斷,中斷任務的優先級高于其他任何任務。可以說,該任務是“基于中斷響應”的。這樣處理的好處是能夠最大的保證了通信的實時性,同時也使得系統資源的利用率大大提高(相比于收發都采用查詢的方式)。任務間的通信和同步通過郵箱和信號量機制進行。

當用戶應用程序(或任務)要求進行遠程CAN通信的時候,應用程序(或任務)先要獲得BufTxSem并向發送緩沖區BufTx裝入報文,寫入緩沖區結束后釋放信號量BufTxSem,通過郵箱通知CAN通信任務處理報文并完成報文的發送。

當總線發來報文時,接受節點的CAN控制器會產生一個接收中斷,當前運行任務被掛起,CAN通信任務被激活并搶占運行,獲取信號量BufRxSem,然后從總線上讀取報文并寫入緩沖區,寫入結束后釋放信號量BufRxSem,并通過郵箱通知相應的用戶應用程序(或任務);應用程序(或任務)通過獲得信號量BufRxSem從緩沖區內讀取相應的報文信息。

(3)μC/OS-II的中斷任務的處理

在μC/OS-II中,中斷服務程序一般用匯編語言來寫。以下是中斷服務程序的示意代碼:

VoidUserISR(void){

保存全部CPU寄存器

調用OSIntEnter或OSIntNesting直接加1;

執行用戶代碼做中斷服務;

調用OSIntExit;

恢復所有CPU寄存器;

執行中斷返回指令;

}

μC/OS-II提供了兩個ISR與內核的接口函數:OSIntEnter和OSIntExit。OSIntEnter通知內核中斷服務程序開始運行了,并把一個全局變量OSIntNesting加1。此中斷嵌套計數器可以確保所有中斷處理完成后再作任務調度。另一個接口函數OSIntExit則通知內核,中斷服務已結束。根據相應情況,返回被中斷點(可能是一個任務或者被嵌套的中斷服務程序)或由內核作任務調度。

用戶編寫的ISR必須被安裝到某一位置,以便中斷發生后,CPU根據相應的中斷向量運行準確的服務程序。許多實時操作系統都提供了安裝、卸載中斷服務程序的API接口函數,有些成熟的RTOS甚至對中斷控制器的管理都有相應的API函數。但μC/OS-II內核沒有提供類似的接口函數,需要用戶在對應的CPU移植中自己實現。在DSP2407中,我們可以在設計中斷向量表的時候把用戶的中斷入口寫好,這樣一旦CAN通信接受中斷發生時,DSP2407就能自動從中斷向量表里讀取相應的程序入口,進而跳轉執行用戶的ISR程序。

結束語

基于RTOS平臺上開發用戶的應用程序,便于在實時操作系統內核下實現多任務處理,可以大大縮短產品開發周期,進一步提高應用程序的可移植性和可維護性。基于本文原理開發的應用于集散式數據采集系統的CAN總線遠程通信構件具有良好的可擴充性和移植性,對各種實際現場情況能夠進行靈活的配置和設定,真正實現了通信模塊驅動程序的封裝。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • dsp
    dsp
    +關注

    關注

    555

    文章

    8123

    瀏覽量

    354278
  • 數據采集
    +關注

    關注

    40

    文章

    6765

    瀏覽量

    115315
  • 操作系統
    +關注

    關注

    37

    文章

    7025

    瀏覽量

    124727
收藏 人收藏

    評論

    相關推薦

    TMS320LF2407TMS320LF2407a 有什么區別啊。。。

    TMS320LF2407TMS320LF2407a 有什么區別啊。。。
    發表于 02-27 14:05

    基于TMS320LF2407A的調音器設計

    軟件進行快速傅里葉變換計算信號頻率,最后輸出到液晶顯示器上,從而實現調音器的功能。本作品以實驗室提供的TMS320LF2407A教學系統為基礎平臺搭建,對硬件及軟件進行設計
    發表于 12-18 11:43

    如何使用TMS320LF2407A的bootrom

    小弟新手,請問各位大俠,如何使用TMS320LF2407A的bootrom,如何滿足bootrom需求的數據格式?懇請大俠們指教
    發表于 07-13 15:33

    TMS320LF2407A為數字控制系統的設計提供了參考

    TMS320LF2407A的體系結構是由什么組成的?TMS320LF2407A有哪些功能特性?TMS320LF2407A在控制領域中的應用有哪些?TMS320LF2407A為什么會為數
    發表于 04-14 06:18

    μC OS-IITMS320LF2407 上的移植及應用

    詳細討論μC/OS-IITMS320LF2407 上的移植并給出主要代碼; 分析移植中可能出現的問題,給出解決方法;討論移植過程中代碼的改寫與優化,并介紹μC/
    發表于 05-15 13:53 ?18次下載

    基于μC/OS-II 的CAN總線驅動程序設計

    在將嵌入實時操作系統μC/OS-II 成功移植到TMS320LF2407A 型號的DSP 的基礎上,論文介紹了如何在電力
    發表于 05-26 13:27 ?16次下載

    基于us/OS-II操作系統的斷路器控制器研制

    本文介紹了一種基于us/OS-II 嵌入操作系統TMS320LF2407A DSP 的低壓斷路器新型智能控制器的設計,對us/OS-II
    發表于 08-26 11:32 ?20次下載

    基于TMS320LF2407A直流電機閉環調速控制系統的設計

      針對某型直流電機調速系統的要求,采用TMS320LF2407A和AT89C51設計一種雙核直流電機閉環調速控制系統TMS320LF2
    發表于 02-11 12:15 ?65次下載

    基于TMS320LF2407A的SVPWM變頻調速系統的應用

    基于TMS320LF2407A的SVPWM變頻調速系統的應用。
    發表于 04-18 10:46 ?34次下載

    基于TMS320LF2407A的SVPWM變頻系統的設計

    基于TMS320LF2407A的SVPWM變頻系統的設計
    發表于 04-19 13:57 ?19次下載

    TMS320LF2407A匯編指令

    TMS320LF2407A匯編指令(word版1.0)
    發表于 05-06 16:54 ?33次下載

    基于TMS320LF2407A的SVPWM變頻系統的研究及實現

    基于TMS320LF2407A的SVPWM變頻系統的研究及實現
    發表于 05-06 16:54 ?14次下載

    基于TMS320LF2407的高速數據采集系統

    基于TMS320LF2407的高速數據采集系統
    發表于 05-06 15:39 ?7次下載

    基于AT89C51和TMS320LF2407A的直流電機閉環調速控制系統的設計

    針對某型直流電機調速系統的要求,采用TMS320LF2407A和AT89C51設計一種雙核直流電機閉環調速控制系統TMS320LF2407A
    發表于 12-06 08:47 ?12次下載
    基于AT89<b class='flag-5'>C</b>51和<b class='flag-5'>TMS320LF2407A</b>的直流電機閉環調速控制<b class='flag-5'>系統</b>的設計

    控制器TMS320LF2407A系列數據手冊

    控制器TMS320LF2407A系列數據手冊
    發表于 07-20 09:19 ?13次下載
    主站蜘蛛池模板: 最新久久精品 | 日本三级理论 | 国内露脸夫妇交换精品 | 久久国产免费观看精品1 | 四月激情网 | 国产黄色小视频在线观看 | 丁香六月激情综合 | 麻豆国产三级在线观看 | 人人插人人 | 久久99热久久精品23 | 性网站免费 | 人与牲动交xxxxbbb | 爱爱免费网站 | 妇乱子伦激情 | 综合色天天| 国产一二精品 | h小视频在线 | 日韩美女奶水喂男人在线观看 | 一级毛片西西人体44rt高清 | 优优色综合 | 22sihu国产精品视频影视资讯 | 亚洲成人看片 | 中文成人在线 | 日韩精品亚洲一级在线观看 | 亚洲色图综合图区 | 久久香蕉国产线看观看亚洲片 | 偷偷要色偷偷 | 99久久无色码中文字幕 | 18美女扒开尿口无遮挡 | 欧美影院在线 | 亚色视频在线 | 天天射天天操天天色 | 国产午夜精品一区二区理论影院 | 日本资源在线观看 | 新天堂网 | 一二三区乱码一区二区三区码 | 色校园| 成人99国产精品 | 欧美极品第一页 | www.五月婷婷.com| 亚久久|