a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于μC/OS-II的Modbus協議測試系統

基于μC/OS-II的Modbus協議測試系統

作者: 時間:2009-09-01 來源:網絡 收藏

  3 軟件設計

  μ下應用程序設計主要是根據系統的功能需要劃分不同的任務和中斷,并為每個 任務分配不同的優先級。一個任務通常是一個無限的循環,看起來像其它C的函數一樣,有 函數返回類型,有形式參數變量,但任務是決不會返回的,因此返回參數類型必須定義為 void。為了使μ能管理用戶任務,用戶必須在建立一個任務的時候,將任務的起始地 址與其它參數一起傳給OSTaskCreate()或OSTaskCreateExt()。

  中斷和任務以及任務與任務之間的同步可通過信號量實現。下面以測試程 序中RTU模式下字符時間間隔的測量為例介紹μ程序設計中任務和中斷的劃分。 的RTU模式中規定[3]:RTU模式下必須以連續的字符流發送整個報文幀,同一個 幀中兩個字符之間的空閑時間Δt不能大于1.5個字符時間(稱為t1.5),否則就認為報文幀不完 整;不同報文幀之間需要時長至少為3.5個字符的空閑時間,這個時間區間被稱為t3.5。RTU 模式下的信息幀如圖2所示。

  圖2 RTU模式的信息幀

  為了記錄RTU 幀中一個字符結束時間和另一個字符的起始時間,系統分別使用串口中 斷Uart_ISR 和IO 中斷PE24_ISR 分別對這兩個時刻進行捕捉。這需要將HMS30C7202 的串 口中斷時機設置為接收完一個字符后,將通用I/O 端口線PE24 設為允許中斷、下降沿觸發。

  為了縮短關中斷時間和中斷處理時間,可將中斷的處理放在任務中進行。在主任務中調 用OSTaskCreate函數分別建立串口接收處理任務Uart_Task和IO口處理任務PE24_Task。在 μC/OS-II中,有一個全局的系統時鐘,維護著一個全局時間變量。在Uart_Task和PE24_Task這兩個任務中分別通過讀取當前全局時間變量來實現對字符起始時間和結束時間的連續測 量。系統利用μC/OS-II中信號量機制實現中斷與任務之間的同步[3][4],信號量必須在系統啟 動的時候初始化,利用信號量實現任務與中斷同步的過程如圖3所示。

  圖 3 利用信號量實現任務與中斷同步



評論


相關推薦

技術專區

關閉