基于μC/OS-II嵌入式操作系統(tǒng)的TCSC實驗控制器前置單元設計
中斷服務程序( ISR)的設計
AD采樣和晶閘管觸發(fā)這兩項功能由中斷服務程序( ISR)來完成。根據(jù)μC /OS-Ⅱ要求, ISR開始時需調用OSIntEnter ( )函數(shù)通知μC /OS-Ⅱ系統(tǒng)進入了ISR,ISR結束時需調用OSIntExit ( )函數(shù)通知μC /OS-Ⅱ進行進程調度。
AD采樣模塊有3 個ISR,分別是: 定時器4 ISR(產(chǎn)生周期性的采樣保持信號) ,定時器5 ISR (產(chǎn)生16μs的延遲,以符合S3C44B0X的多路選擇器對切換時間的要求) ,AD ISR (讀取AD采樣結果,并進行相應的操作)。系統(tǒng)必須在兩次Timer4中斷之間完成6次AD采樣工作。晶閘管觸發(fā)模塊有3組、每組2個ISR。每組的2個ISR分別為一個過零檢測ISR和一個定時器ISR,共同控制一相的晶閘管觸發(fā)。
μC /OS-II任務設計
前置單元通過PD IUSBD12 的Endpoint1 ( PacketSize = 16 B )接受上位機的命令,返回命令的執(zhí)行狀態(tài),通過PD IUSBD12的Endpoint2 ( Packet Size = 64 B)返回AD 采樣的結果。 這通過兩個函數(shù)TaskUsbEp1RxDone和TaskUsbEp2SendData 可以實現(xiàn), 同時通過TaskUsbSetupPacket函數(shù)來處理主機發(fā)來的請求。我們設置PD IUSBD12 的Endpoint1 ( Generic Endpoint) 工作在Interrup t 模式, Endpoint2 (Main Endpoint)工作在Bulk模式,則:
1) TaskUsbEp1RxDone
TaskUsbEp1RxDone為前置機接受上位機采樣或置觸發(fā)角的任務,其工作流程下所示。
先用OSSemPend ( )等待上位機發(fā)送命令,若上位機發(fā)來的COMM_START_AD命令,則:
若TOTAL _ SAMPLE _ TIMES! = 0, 則通過Endpoint1返回錯誤信息給上位機,否則置AD_BUFF_P =0, TOTAL _ SAMPLE _ TIMES =所需采樣的周期數(shù)×100,開啟Timer4 (采樣保持定時器) ,通過Endpoint1返回成功信息給上位機。
若上位機發(fā)來的是COMM _SET_ANGLE命令則設置相應的X_ANGLE變量,能過Endpoint1返回成功信息給上位機。
2) TaskUsbEp2SendData
TaskUsbEp2SendData任務的工作次序為先等待AD ISR發(fā)送要求傳送數(shù)據(jù)的消息,消息發(fā)出后,在等待上次USB傳送結束,再通過Endpoint2發(fā)送緩沖區(qū)中的數(shù)據(jù)。
3) TaskUsbSetupPacket
TaskUsbSetupPacket任務工作次序為先等待SetupPacket事件,事件發(fā)生后再調用UsbControlHandler( )函數(shù)處理主機的請求。
軟件整體結構
整體軟件結構框圖如圖4所示(圖中矩形框代表中斷服務程序ISR,橢圓代表μC /OS-Ⅱ任務虛線框代表μC /OS-Ⅱ信號量或消息隊列)。
結 論
實驗結果表明,實際系統(tǒng)數(shù)據(jù)采集速度與設計時預期的結果基本一致,印證了現(xiàn)階段結合數(shù)據(jù)采集、AD轉換、數(shù)據(jù)傳輸及其它功能模塊如過零檢測、觸發(fā)可控硅等諸多任務于一體的復雜系統(tǒng),必須有功能強大的硬件資源平臺做支撐;在多任務、實時性較強的場合,嵌入式實時操作系統(tǒng)是必不可少的;在數(shù)據(jù)傳輸方面,USB在速度方面的優(yōu)勢比傳統(tǒng)的RS232更能滿足TCSC實時控制的要求。
參考文獻:
[1].RS232datasheethttp://www.dzsc.com/datasheet/RS232_585128.html.
[2].S3C44B0Xdatasheethttp://www.dzsc.com/datasheet/S3C44B0X_5892.html.
[3].74HC14datasheethttp://www.dzsc.com/datasheet/74HC14_99158.html.
[4].TTLdatasheethttp://www.dzsc.com/datasheet/TTL_1174409.html.
[5].LF398datasheethttp://www.dzsc.com/datasheet/LF398_842703.html.
[6].74LS04datasheethttp://www.dzsc.com/datasheet/74LS04_772886.html.
[7].Bulkdatasheethttp://www.dzsc.com/datasheet/Bulk_2523104.html.
評論