HID燈電子鎮(zhèn)流器控制電路和數(shù)字可尋址照明接口(DALI)的通信接口規(guī)范的FPGA實現(xiàn)
項目背景及可行性分析
- 項目名稱、項目的主要內(nèi)容及目前的進展情況
答:項目名稱為:HID燈電子鎮(zhèn)流器控制電路和數(shù)字可尋址照明接口(DALI)的通信接口規(guī)范的FPGA實現(xiàn)。
主要內(nèi)容:
(1)、通過A/D采樣電子鎮(zhèn)流器的Buck電路得到電壓和電流的數(shù)字值。運用數(shù)字電路構(gòu)成PID算法,對采樣數(shù)據(jù)進行處理,產(chǎn)生PWM脈沖信號,實現(xiàn)對HID燈的恒流和恒功率控制,以達到精確調(diào)光和穩(wěn)定工作。
(2)、將DALI通訊協(xié)議融合到FPGA中去,達到主計算機對HID燈電子鎮(zhèn)流器組群的控制和通信,以實現(xiàn)根據(jù)實際環(huán)境和需要對HID燈的精確調(diào)光和狀態(tài)查詢。
目前進展情況:DALI部分主程序已經(jīng)完成,編譯通過,并正在仿真調(diào)試。PID部分正準備開始。
- 項目關(guān)鍵技術(shù)及創(chuàng)新點的論述;
答:(1)、用FPGA代替MCU來實現(xiàn)對HID電子鎮(zhèn)流器的控制及調(diào)光。
(2)、將DALI通訊協(xié)議融入控制芯片,方便外界對電子鎮(zhèn)流器的監(jiān)測和控制。
(3)、用脈寬調(diào)制(PWM)技術(shù)實現(xiàn)對HID燈的精確調(diào)光。
- 技術(shù)成熟性和可靠性論述:
答:現(xiàn)有HID電子鎮(zhèn)流器的控制一般是用MCU加專用控制芯片來實現(xiàn),然而,現(xiàn)階段絕大多數(shù)比較成熟的電子鎮(zhèn)流器的控制芯片都是針對熒光燈的,針對HID燈的電子鎮(zhèn)流器的控制芯片幾乎呈現(xiàn)空白狀態(tài)。但我們對HID燈電子鎮(zhèn)流器比較熟悉,因此我們認為我們的設(shè)計具有可實現(xiàn)性。
經(jīng)過系內(nèi)專家及相關(guān)資料論證,我們的設(shè)計具有可靠性,具體可靠性我們會在整個設(shè)計完成后,配合已設(shè)計好的外圍電路加以確認。
項目實施方案
1.方案基本功能框圖及描述
用框圖的方式并加以簡單的描述簡述實施本項目的技術(shù)方案。
以下第一幅圖是我們的DALI的系統(tǒng)功能框圖,所謂DALI(Digital Addressable Lighting Interface),是一種數(shù)字式可尋址照明通訊協(xié)議。
由圖可知,我們的系統(tǒng)采用放電型上電式復(fù)位的結(jié)構(gòu)。上電后正常情況是rst=1,從而對各信號進行賦初值。為了防止正常工作期間,再次發(fā)生rst=1的誤復(fù)位操作,我們進而采用了先對rst采樣并檢測的措施:如果rst=1,執(zhí)行200ms的延時,而后再次檢測rst,如還為1,則非誤觸發(fā);否則就有可能是干擾等產(chǎn)生的誤觸發(fā),對此我們不做響應(yīng)。
基于主機在每次發(fā)送address 和command之前,會在IRQ引腳對我們的系統(tǒng)進行下降沿觸發(fā),因此我們在復(fù)位后就等待IRQ下降沿觸發(fā)信號。如果被觸發(fā),我們就開始接收數(shù)據(jù),進入接收環(huán)節(jié)。
在進行對接收環(huán)節(jié)的描述之前,我們先來簡要地說明一下Dali控制器命令的數(shù)據(jù)幀結(jié)構(gòu)。Dali控制器命令的數(shù)據(jù)幀結(jié)構(gòu)包括一個起始位,八個地址位 (第一字節(jié)),八個數(shù)據(jù)/指令位 (第二字節(jié)),和兩個停止位。第一字節(jié)為address字節(jié),第二字節(jié)為command字節(jié)??梢钥闯鯠ali的控制命令異常簡單,那么是否能保證不出現(xiàn)錯誤,并實現(xiàn)精確調(diào)光呢?
答案是令人放心的。因為Dali數(shù)據(jù)傳送采用以8bit為載體,若前4位為0,后4位為1,則中間的上升沿來表示1;若前4位為1,后4位為0,則中間的下降沿來表示0的傳遞信號方式。因此,對數(shù)據(jù)0和1的傳送非常穩(wěn)定,不容易受到干擾。此外,每幀數(shù)據(jù)還包含了:一個上升沿作為起始位,兩個字節(jié)作為address和command,兩位連續(xù)的高電平作為結(jié)束位(在實際中應(yīng)為2*8bit的高電平)??偣布悠饋韺嶋H上是發(fā)送了152bit的數(shù)據(jù)。
進入接收環(huán)節(jié),我們才算是開始了真正意義上的Dali程序環(huán)節(jié)。我們采用rec_bit代表我們已經(jīng)接收的實際bit數(shù)目(也即接收到的addresss和command命令中的位數(shù)),采用rec_position作為每一個bit代表的8bit中所接收的數(shù)據(jù)位。在這個環(huán)節(jié)中我們逐位接收數(shù)據(jù),當接收過程中發(fā)生錯誤,則停止接收,并返回判斷IRQ是否觸發(fā)狀態(tài). 如果整個接收過程(起始位,中間位,終止位)全無錯誤,則向RAM中相應(yīng)字節(jié)寫入”00000001”,標志可以進入數(shù)據(jù)處理階段(handle_data)。.
數(shù)據(jù)處理可根據(jù)address 和command的不同分為: 燈調(diào)光專用指令, 普通指令, 特殊指令三種 :
由于我們接收的是一個十六位數(shù)據(jù),并且其中前八位表示地址(8bit地址結(jié)構(gòu)為YAAAAAAS),后八位表示command 和調(diào)光值,當接收到的十六位數(shù)據(jù)的最高位,即Y=0時表示為短地址,Y=1時表示為組地址,S為選擇標志位,當S=0時表示后面的是調(diào)光等級值,S=1時表示后面的是指令
燈調(diào)光專用指令(lamp_setlevel),我們是做成元件例化(component)的形式,因此它并行于其他process。它包含了所要達到的調(diào)光值,最大調(diào)光值,最小調(diào)光值等輸入值以及越限錯誤,現(xiàn)在的調(diào)光值(也即前次所達到的調(diào)光值),極值調(diào)光值判斷和tch0,tch1等輸出值。當所要達到的調(diào)光值為FF時,表示的是demo模式;當為00時,表示的是OFF模式,即關(guān)燈;當FE時,表示極值調(diào)光值,此時極值調(diào)光值判斷置1。其他值時,根據(jù)所要達到的調(diào)光值的不同,tch0或tch1的值也置不同的值,這兩個輸出將是PWM的輸入信號。這里具體的就不說了,請詳見程序lamp_setlevel。
普通指令,(normal command) 則分為間接功率控制命令(indirect arc power control commands),整體配置命令(general configuration),功率參數(shù)設(shè)置(arc power parameters settings),系統(tǒng)參數(shù)設(shè)置(system parameters settings),詢問相關(guān)狀態(tài)信息(queries related to status information),詢問相關(guān)功率參數(shù)設(shè)置(queries related to arc power parameters settings),詢問相關(guān)系統(tǒng)參數(shù)設(shè)置(queries related to system parameters settings) 等。
以下我們簡單介紹程序中一些二進制代碼所對應(yīng)的命令,列表如下:
Indirect arc power control commands | |
0000 0000 | OFF |
0000 0001 | UP |
0000 0010 | DOWN |
0000 0011 | STEP_UP |
0000 0100 | STEP_DOWN |
0000 0101 | RECALL_MAX_LEVEL |
0000 0110 | RECALL_MIN_LEVEL |
0000 0111 | STEP_DOWN_AND_OFF |
0000 1000 | ON_AND_STEP_UP |
0001 0000 | GO_TO_SCENE |
General configuration commands | |
0010 0000 | RESET |
0010 0001 | STORE_ACTUAL_LEVEL_IN_THE_DTR |
Arc power parameters settings | |
0010 1010 | STORE_THE_DTR_AS_MAX_LEVEL |
0010 1011 | STORE_THE_DTR_AS_MIN_LEVEL |
0010 1100 | STORE_THE_DTR_AS_SYSTEM_FALLURE_LEVEL |
0010 1101 | STORE_THE_DTR_AS_POWER_ON_LEVEL |
0010 1110 | STORE_THE_DTR_AS_FADE_TIME |
0010 1111 | STORE_THE_DTR_AS_FADE_RATE |
0100 0000 | STORE_THE_DTR_AS_SCENE |
System parameters settings | |
0101 0000 | REMOVE_FROM_SCENE |
1000 0000 | STORE_DTR_AS_SHORT_ADDRESS |
Queries related to status information | |
1001 0000 | QUERY_STATUS |
1001 0001 | QUERY_BALLAST |
1001 0010 | QUERY_LAMP_FALLURE |
1001 0011 | QUERY_POWER_ON |
1001 0100 | QUERY_LIMIT_ERROR |
1001 0101 | QUERY_RESET_STATE |
1001 0110 | QUERY_MISSING_SHORT_ADDRESS |
1001 0111 | QUERY_VERSION_NUMBER |
1001 1000 | QUERY_CONTENT_DTR |
1001 1001 | QUERY_DEVICE_TYPE |
1001 1010 | QUERY_PHYSICAL_MINIMUM_LEVEL |
1001 1011 | QUERY_POWER_FALLURE |
Queries related to arc power parameters settings | |
1010 0000 | QUERY_ACTUAL_LEVEL |
1010 0001 | QUERY_MAX_LEVEL |
1010 0010 | QUERY_MIN_LEVEL |
1010 0011 | QUERY_POWER_ON_LEVEL |
1010 0100 | QUERY_SYSTEM_FALLURE_LEVEL |
1010 0101 | QUERY_FADE |
Queries related to system parameters settings | |
1011 0000 | QUERY_SCENE_LEVEL |
1100 0010 | QUERY_RANDOM_ADDRESS_H |
1100 0011 | QUERY_RANDOM_ADDRESS_M |
1100 0100 | QUERY_RANDOM_ADDRESS_L |
特殊指令是廣播發(fā)送的,所有的鎮(zhèn)流器都能收到,其形式為address的八位內(nèi)容為”101XXXX1”或”110XXXX1”.而且每條后邊跟隨著的八位command中存儲的是對應(yīng)的value(格式為:A1 00; A3 XX;A5 XX;A7 00; A9 00; AB 00;B1 HH;B3 MM;B5 LL;B7 XX;B9 XX; BB 00;BD 00 .共有十三條) 具體說來: A1 00 是終止特殊進程的指令,執(zhí)行后所有特殊模式的處理進程都會被終止(以address_time=00000000的方式實現(xiàn)); A3 XX 將會向DTR中存儲command的八位數(shù)值”XXXXXXXX “; A5 XX是初始化指令,這一指令在接下來的100毫秒內(nèi)將被再次接收到; A7 00 是產(chǎn)生隨機序列指令,鎮(zhèn)流器將根據(jù)它產(chǎn)生一個新的隨機地址,共有24位,分為高,中,低三個字節(jié)存放在三個存儲器中.我們采用三個時鐘(clk_main, clk_dali, clk_20)驅(qū)動的三個循環(huán)計數(shù)器計數(shù),當需要產(chǎn)生隨機地址時,把當時的計數(shù)值賦給三個存儲器即可; A9 00是比較指令,鎮(zhèn)流器會將已存儲在search_address_h, search_address_m, search_address_l中的組合尋址地址(由主機發(fā)來的)與它的隨機地址比較,如果隨機地址小于或等于組合尋址地址,則鎮(zhèn)流器不被撤銷,回答YES(answer=11111111); AB 00 是撤銷指令,也即隨機地址和組合尋址地址相等的鎮(zhèn)流器將被撤銷(因為短地址已經(jīng)確定)而不再響應(yīng)比較指令; B1 HH,B3 MM,B5 LL 分別是將command中的數(shù)值存入search_address_h, search_address_m, search_address_l; B7 XX實際為1011 0111 0AAAAAA1,執(zhí)行時如果鎮(zhèn)流器被選中,則會將收到的6位地址保存為它的短地址(被選中的條件是:1.鎮(zhèn)流器的隨機地址和組合尋址地址相等 或者2.燈具和鎮(zhèn)流器之間沒有連接,則在接收到指令BD 00后,鎮(zhèn)流器就會被物理選擇探測到) [注意:當B7 XX為1011 0111 01111111 時,短地址將被刪除.]; B9 XX 是確認短地址,當接收到的短地址和鎮(zhèn)流器自身的短地址相同則回答YES; BB 00 如果鎮(zhèn)流器被選中,則會向主機回發(fā)短地址(0AAAAAA1); BD 00 執(zhí)行此指令時,鎮(zhèn)流器被置為物理選擇模式(selection=00000001),這一模式下不能進行組合尋址地址和隨機地址的比較.
接著就是發(fā)送這一塊了。前面對flag(也即dataout1信號)的02的置位,使得發(fā)送得以進行。于是,在clk_dali時鐘上升沿的觸發(fā)下,發(fā)送環(huán)節(jié)開始串行輸出。在這里,Dali數(shù)據(jù)傳送仍采用以8bit為載體,若前4位為0,后4位為1,則中間的上升沿來表示1;若前4位為1,后4位為0,則中間的下降沿來表示0的傳遞信號方式(這些在程序中有詳細的發(fā)送步驟描述,恕不多敘)。值得注意的是:
- answer是8bit的輸出,它的串行輸出必須一步步的執(zhí)行,因此用temp_value來記錄每一位的值,并按照Dali數(shù)據(jù)傳送規(guī)則傳出。
send_position與rec_position有些不同,send_position是一直加上去的,沒有清零。這樣,在send_position=24時,開始起始位上升沿的輸出,到27bit結(jié)束,在從28到31bit是下降沿的輸出。然后從32bit起,開始數(shù)據(jù)傳遞。當?shù)竭_96bit時開始結(jié)束位的16bit高電平,然后再在112bit對flag(dataout1)和send_position清零。
上圖是我們聯(lián)合主控計算機,運用DALI通訊協(xié)議,進行HID燈恒功率工作調(diào)節(jié)的PID算法框圖。
BUCK電路是電子鎮(zhèn)流器的逆變電路,通過對它采樣可得燈的工作電壓與電流瞬時值,我們先經(jīng)過濾波網(wǎng)絡(luò),LEM隔離和二階濾波電路,而后進行采樣并A/D轉(zhuǎn)換,得到十位的數(shù)字值,然后用預(yù)存儲的pref 與所得的電壓值作除法,得到電流參考值,并與所采樣的電流值比較作差,得到誤差e(k),然后通過圖示的pi算法分別進行乘法(*KP)和累加()后乘法(*KI),然后將兩者所得結(jié)果再作加法,所得U(k)經(jīng)圖示步驟轉(zhuǎn)化為PWM脈寬變化,進而控制功率管的開關(guān)時間,減小誤差,實現(xiàn)負反饋,最終達到恒功率控制。
2.需要的開發(fā)平臺
實現(xiàn)本方案所需要的基本功能、功能、接口;
所需要的目標FPGA開發(fā)平臺,簡述為什么需要此平臺;
是否需要其它配套的開發(fā)工具;
答:開發(fā)平臺:Spartan-3E,50萬門。原因:有足夠的門,并且自帶A/D,D/A,有較高的運行速度,能夠?qū)?shù)據(jù)進行及時的處理。
實現(xiàn)本方案所需要的基本功能、功能、接口:Flash,DRAM,SRAM,USB2.0,AD,DA,LED顯示,RS-232。
其它配套的開發(fā)工具:ISE8.2i 配套的modelsim
3.方案實施過程中需要開發(fā)的模塊
在本方案中需要研制、開發(fā)的功能主要模塊,以及開發(fā)的方式
答:DALI模塊,PID模塊。
先用VHDL在ISE8.2i對DALI和PID模塊進行編程描述,并在時序仿真及布局布線后,生成電路網(wǎng)表,最終燒寫進FPGA實驗板中,實現(xiàn)電路。
4.系統(tǒng)最終要達到的性能指標,論述本項目最終完成時所設(shè)想達到的目標。
答:按照DALI的通訊協(xié)議進行正確的數(shù)據(jù)接受,發(fā)送和處理。對HID進行有效而精確的功率調(diào)制,并使其能夠穩(wěn)定工作。
需要的其它資源
1.設(shè)計輸入輸出功能子板
答:子板功能描述:具有十位以上的A/D,D/A轉(zhuǎn)換功能,多個LED,支持JTAG數(shù)據(jù)傳送,20M以上的晶振時鐘若干,USB2.0接口。
接口說明:USB2.0接口,具有十位以上的A/D,D/A轉(zhuǎn)換接口各兩個以上。
2.測試設(shè)備:萬用表、示波器、邏輯分析儀等;250W的HID燈及其電子整流器、mosfet等電路元件
3.仿真,開發(fā)工具:ISE8.2i 和配套的modelsim。
評論