<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于μC/OS-II嵌入式操作系統的TCSC實(shí)驗控制器前置單元設計

基于μC/OS-II嵌入式操作系統的TCSC實(shí)驗控制器前置單元設計

作者: 時(shí)間:2013-04-06 來(lái)源:網(wǎng)絡(luò ) 收藏

 中斷服務(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.


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>