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