基于μC/OS-II嵌入式操作系統(tǒng)的TCSC實驗控制器前置單元設(shè)計
在復(fù)雜的實時系統(tǒng)中,多任務(wù)處理是比較關(guān)鍵的環(huán)節(jié),采用前后臺的單任務(wù)控制方式已經(jīng)不能滿足要求,在高速數(shù)據(jù)采集系統(tǒng)中RS232明顯是個瓶頸。
本文采用arm處理器技術(shù)、嵌入式實時操作系統(tǒng)技術(shù)和通用串行總線(USB)技術(shù)來完成TCSC實驗系統(tǒng)控制器前置單元的實際開發(fā)。 實驗表明,實際系統(tǒng)數(shù)據(jù)采集速度與設(shè)計時預(yù)期的結(jié)果基本一致,印證了在實時性較強,多任務(wù),需快速傳輸數(shù)據(jù)的復(fù)雜系統(tǒng)中,引入嵌入式操作系統(tǒng)μC/OS-II及USB傳輸方式的優(yōu)勢和必要性。
可控串聯(lián)補償( TCSC) 是柔性交流輸電系統(tǒng)( FACTS)概念提出后的第一個FACTS裝置。 由于TCSC直接串入輸電線路,可以連續(xù)、快速、大范圍地調(diào)節(jié)線路阻抗(本身的阻抗從容性到感性變化) ,和其自身的數(shù)據(jù)采集與監(jiān)控( SCADA)系統(tǒng)相配合,可以實現(xiàn)遠方阻抗和功率潮流調(diào)節(jié),平息地區(qū)性功率振蕩,提高系統(tǒng)暫態(tài)穩(wěn)定性,抑制次同步諧振。 本文通過一個在研項目——福建-華東電網(wǎng)互聯(lián)的可控串補研究,詳細介紹了可控串聯(lián)補償( TCSC)實驗控制器的前置單元部分設(shè)計,以便于為實際決策提供完整、準(zhǔn)確的實驗數(shù)據(jù)。
TCSC的穩(wěn)態(tài)特性分析電路模型
TCSC的基本結(jié)構(gòu)是固定的串補電容C并聯(lián)一個由雙向晶閘管(實際也可把兩個單向晶閘管并聯(lián)反接在一起)控制的電抗L ,圖1所示為穩(wěn)態(tài)分析用的TCSC模型:
它的運行模式有:
1) 晶閘管截止。 TCSC等同于固定串聯(lián)補償。
2) 晶閘管旁路。 在電流正或反方向流過VT時,雙向晶閘管VT分別在180°范圍內(nèi)全導(dǎo)通,線路電流大部分通過L ,整個TCSC呈現(xiàn)小電抗特性。
3) 容性微調(diào)模式。 VT導(dǎo)通角較小,整個TCSC的阻抗呈現(xiàn)大于C本身的容抗特性。
4) 感性微調(diào)模式。 VT的導(dǎo)通角較大,整個TCSC的阻抗呈現(xiàn)感性電抗特性。
通過其運行模式可以看出,控制雙向晶閘管VT的導(dǎo)通角可以改變LC環(huán)路導(dǎo)通電流,從而可以連續(xù)快速調(diào)整TCSC阻抗值而達到其控制目的。
實驗控制系統(tǒng)由上位主機和前置控制單元組成,上位機主要負責(zé)系統(tǒng)分析,控制算法的確定。 前置單元實現(xiàn)高速數(shù)據(jù)采集,AD轉(zhuǎn)換,與上位機快速傳遞數(shù)據(jù)及觸發(fā)可控硅等多項功能。
前置單元的需求分析
前置單元的在整個TCSC實驗控制系統(tǒng)中主要完成以下3項工作。
和上位機的通訊
前置單元通過USB接口和上位機通訊。 這個功能是其它兩個功能的基礎(chǔ),要實現(xiàn)這一功能,需要設(shè)計設(shè)備端(前置單元)和主機端(上位機)的USB 軟件,并定義上位機和前置單元間通訊的數(shù)據(jù)格式。
數(shù)據(jù)采集
前置單元要采集從電流(電壓)傳感器輸入的三相電流和三相電壓,共六路數(shù)據(jù)。當(dāng)上位機需要三相電流電壓數(shù)據(jù)時,就發(fā)送命令給前置單元要求其開始采集數(shù)據(jù),并設(shè)定所需采樣的周期數(shù)。前置單元收到命令后立即開始數(shù)據(jù)采集,并通過USB把采集的數(shù)據(jù)按約定的格式送給主機。要實現(xiàn)六路采樣功能,前置單元必須具備采樣保持器、多路選擇器和AD轉(zhuǎn)換器。
數(shù)據(jù)采集的速度分析:因為上位機需要對電壓電流信號進行高次諧波分析,所以數(shù)據(jù)采集的速度必須盡量快。S3C44B0X自帶的AD最高采樣頻率為100 kSPS(10μs一次) ,加上其多路選擇器的切換時間為15μs,實際的最快采樣速度為25 μs一次。這里選擇每0.2 ms對三相電壓和三相電流各采樣一次,即每33μs采樣一個數(shù)據(jù)。這樣每個周波可以采樣100 次,可以分析到5~7次諧波。
三相晶閘管的觸發(fā)控制
上位機計算出合適的晶閘管導(dǎo)通角并通過USB傳給前置單元,前置單元使用此導(dǎo)通角發(fā)出晶閘管觸發(fā)信號。要實現(xiàn)此功能,前置單元必須具有3路電壓過零監(jiān)測器和晶閘管觸發(fā)電路,如圖2所示。
硬件設(shè)計
前置單元硬件電路的核心部分采用51EDA和勤研公司聯(lián)合研制的44B0X開發(fā)板。 該開發(fā)板使用SAMSUMG S3C44B0X處理器,并集成了其它外部設(shè)備,主要包括2 MB16 位數(shù)據(jù)寬度的線性Flash( SST39VF160) , 10M TCP / IP 接口(RTL8019 ) , USBDevice接口( Philip s PD IUSBD12) ,LCD接口, 7路ADC輸入,兩路標(biāo)準(zhǔn)RS232接口等等。此外,根據(jù)課題需要在設(shè)計中還自行擴展了過零檢測電路,采樣保持電路和可控硅觸發(fā)電路。
微處理器SAMSUNG S3C44B0X介紹
這是一款基于ARM7TDM I內(nèi)核的32位的高性能R ISC處理器。 支持16位Thumb和32位ARM雙指令集,尤其是在使用16位Thumb指令集時仍然享受arm處理器的32位的特性,如32位長的寄存器, 32位的尋址空間等,并且得到更高密度代碼。 此外還集成很多外設(shè),包括8通道ADC,外部存儲器控制器, LCD控制器, 4通道DMA, 71個通用IO口,具有日歷功能的RTC時鐘, 5個PWM定時器,一個內(nèi)部定時器和一個看門狗定時器,片內(nèi)鎖相環(huán)( PLL)時鐘發(fā)生器(最高時鐘頻率66 MHz) , 2 通道異步串口,帶有16 字節(jié)F IFO, IIC、IIS總線控制器等等。
USB接口器件PD IUSBD12介紹
這是Philip s公司推出的一款應(yīng)用廣泛的USB 接口器件,符合USB1.1規(guī)范,集成SIE, F IFO存儲器,收發(fā)器以及電壓調(diào)整器,可與任何外部微控制器或微處理器實現(xiàn)高速并行接口(2 MB / s) ,完全DMA操作,主端點的雙緩沖配置增加了數(shù)據(jù)吞吐量并輕松實現(xiàn)實時數(shù)據(jù)傳輸。
電壓過零檢測電路
電壓過零檢測電路由一個電橋,光電隔離及其它器件組成,共3組,兩個74HC14反向門用來將電壓整形為TTL電平,輸入到微處理器S3C44B0X外部中斷端,當(dāng)電力線電壓變?yōu)榱銜r,光電隔離器中發(fā)光二極管截止,此時向中斷端輸出高電平脈沖引發(fā)中斷。
采樣保持電路
采樣保持器共6 路,其中3 路測電壓, 3 路測電流。采用LF398芯片,它有8個引腳, 1和4腳接電源,范圍為( ±5 ~ ±18) V之間, 3腳為輸入端,接電力線經(jīng)變壓后的電壓或經(jīng)電流互感器轉(zhuǎn)化的電壓, 2腳接1 kΩ電阻,用于調(diào)節(jié)漂移電壓。7腳接參考電壓, 8 腳接控制信號,控制芯片的采樣保持狀態(tài)。在這里通過S3C44B0X的通用I/O 引腳GPF0-5 分別控制6 路采樣保持器的8腳。6腳外接保持電容,這里考慮到實時性的要求,因此選擇較小的電容值,取C1 = 0.001μF,此時采樣時間不超過10μs,同時可以滿足8位的采樣精度。[!--empirenews.page--]
晶閘管觸發(fā)電路
觸發(fā)電路共3 組分別接A, B, C三相,如圖3 所示,兩個74LS04反向門用來增加驅(qū)動能力,輸入端接44B0X的通用IO 口GPE4-6引腳。脈沖變壓器N1 和N2一方面?zhèn)鬟f觸發(fā)脈沖,另一方面對強弱電之間起到很好的隔離作用。CPU 發(fā)出觸發(fā)脈沖信號之后,兩個反向可控硅的觸發(fā)端會同時有觸發(fā)信號,但由于某一時刻加在兩個可控硅上的電壓只有一個滿足導(dǎo)通條件,故只有一個可控硅會導(dǎo)通。
軟件設(shè)計
前置單元的軟件要完成和上位機通訊、AD 采樣和晶閘管觸發(fā)3項功能。 其中AD采樣速率很高、晶閘管觸發(fā)實時性很強,所以這兩項功能必須采用硬件定時器來保證其實時性,因此設(shè)計使用中斷服務(wù)程序( Interrup t Service Routine, ISR ) 來完成這兩項功能。USB驅(qū)動程序由開發(fā)板附帶,通訊的功能主要通過μC /OS-Ⅱ中的任務(wù)來完成(當(dāng)然, USB 中斷處理也是必不可少的)。USB 任務(wù)和各ISR 之間的通訊通過μC /OS-Ⅱ的同步機制(信號量、消息隊列)和全局變量來完成。 所有軟件均是在ARM公司自己的開發(fā)環(huán)境ADS下實現(xiàn)的,ADS1。2有自己的C, C + +語言編譯器及庫文件,有GU I界面的調(diào)試器AXD和命令行界面的調(diào)試器armsd以及GU I界面的編輯器Code WarriorIDE,這為開發(fā)人員提供了極大的便利。 調(diào)試工具用的是JTAG仿真器, JTAG仿真器通過JTAG邊界掃描口與arm CPU核通信,屬于完全非插入式(即不使用片上資源)調(diào)試,它無需目標(biāo)存儲器,不占用目標(biāo)系統(tǒng)的任何端口,是目前采用最多的一種調(diào)試方式。
嵌入式實時操作系統(tǒng)μC /OS-II介紹
對于復(fù)雜的應(yīng)用,直接在裸機上開發(fā)運行的前后臺系統(tǒng)開發(fā)、維護和擴展都很困難,嵌入式操作系統(tǒng)應(yīng)運而生,其最大的特點就是處理多任務(wù),而且在工控領(lǐng)域大多實時性要求較強,而μC /OS-II迎合了這些特點。μC /OS-II支持64個任務(wù),每個任務(wù)的優(yōu)先級必須是不同的,調(diào)度算法總是讓處于就緒狀態(tài)的最高優(yōu)先級任務(wù)先執(zhí)行, 并提供了信號量( Semaphore) 、郵箱(Mailbox)和消息隊列(Message Queue)等多種通訊同步原語。每個任務(wù)都處在以下5種狀態(tài)之一的狀態(tài)下,這5種狀態(tài)是休眠態(tài)(Dormant) ,就緒態(tài)(Ready) 、運行態(tài)(Running) 、掛起態(tài)(Waiting)和被中斷態(tài)( Interrup ted)。μC /OS-II中全部系統(tǒng)調(diào)用的執(zhí)行時間是可確定,其系統(tǒng)調(diào)用的執(zhí)行時間不依賴于應(yīng)用任務(wù)的多少,這也是其實時性的表現(xiàn)。
中斷服務(wù)程序( ISR)的設(shè)計
AD采樣和晶閘管觸發(fā)這兩項功能由中斷服務(wù)程序( ISR)來完成。根據(jù)μC /OS-Ⅱ要求, ISR開始時需調(diào)用OSIntEnter ( )函數(shù)通知μC /OS-Ⅱ系統(tǒng)進入了ISR,ISR結(jié)束時需調(diào)用OSIntExit ( )函數(shù)通知μC /OS-Ⅱ進行進程調(diào)度。
AD采樣模塊有3 個ISR,分別是: 定時器4 ISR(產(chǎn)生周期性的采樣保持信號) ,定時器5 ISR (產(chǎn)生16μs的延遲,以符合S3C44B0X的多路選擇器對切換時間的要求) ,AD ISR (讀取AD采樣結(jié)果,并進行相應(yīng)的操作)。系統(tǒng)必須在兩次Timer4中斷之間完成6次AD采樣工作。晶閘管觸發(fā)模塊有3組、每組2個ISR。每組的2個ISR分別為一個過零檢測ISR和一個定時器ISR,共同控制一相的晶閘管觸發(fā)。
μC /OS-II任務(wù)設(shè)計
前置單元通過PD IUSBD12 的Endpoint1 ( PacketSize = 16 B )接受上位機的命令,返回命令的執(zhí)行狀態(tài),通過PD IUSBD12的Endpoint2 ( Packet Size = 64 B)返回AD 采樣的結(jié)果。 這通過兩個函數(shù)TaskUsbEp1RxDone和TaskUsbEp2SendData 可以實現(xiàn), 同時通過TaskUsbSetupPacket函數(shù)來處理主機發(fā)來的請求。我們設(shè)置PD IUSBD12 的Endpoint1 ( Generic Endpoint) 工作在Interrup t 模式, Endpoint2 (Main Endpoint)工作在Bulk模式,則:
1) TaskUsbEp1RxDone
TaskUsbEp1RxDone為前置機接受上位機采樣或置觸發(fā)角的任務(wù),其工作流程下所示。
先用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命令則設(shè)置相應(yīng)的X_ANGLE變量,能過Endpoint1返回成功信息給上位機。
2) TaskUsbEp2SendData
TaskUsbEp2SendData任務(wù)的工作次序為先等待AD ISR發(fā)送要求傳送數(shù)據(jù)的消息,消息發(fā)出后,在等待上次USB傳送結(jié)束,再通過Endpoint2發(fā)送緩沖區(qū)中的數(shù)據(jù)。
3) TaskUsbSetupPacket
TaskUsbSetupPacket任務(wù)工作次序為先等待SetupPacket事件,事件發(fā)生后再調(diào)用UsbControlHandler( )函數(shù)處理主機的請求。
軟件整體結(jié)構(gòu)
整體軟件結(jié)構(gòu)框圖如圖4所示(圖中矩形框代表中斷服務(wù)程序ISR,橢圓代表μC /OS-Ⅱ任務(wù)虛線框代表μC /OS-Ⅱ信號量或消息隊列)。
結(jié) 論
實驗結(jié)果表明,實際系統(tǒng)數(shù)據(jù)采集速度與設(shè)計時預(yù)期的結(jié)果基本一致,印證了現(xiàn)階段結(jié)合數(shù)據(jù)采集、AD轉(zhuǎn)換、數(shù)據(jù)傳輸及其它功能模塊如過零檢測、觸發(fā)可控硅等諸多任務(wù)于一體的復(fù)雜系統(tǒng),必須有功能強大的硬件資源平臺做支撐;在多任務(wù)、實時性較強的場合,嵌入式實時操作系統(tǒng)是必不可少的;在數(shù)據(jù)傳輸方面,USB在速度方面的優(yōu)勢比傳統(tǒng)的RS232更能滿足TCSC實時控制的要求。