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