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