项目布景及可行性剖析
- 项目名称、项意图首要内容及现在的发展状况
答:项目名称为:HID灯电子镇流器操控电路和数字可寻址照明接口(DALI)的通讯接口标准的FPGA完结。
首要内容:
(1)、经过A/D采样电子镇流器的Buck电路得到电压和电流的数字值。运用数字电路构成PID算法,对采样数据进行处理,发生PWM脉冲信号,完结对HID灯的恒流和恒功率操控,以抵达准确调光和安稳作业。
(2)、将DALI通讯协议融合到FPGA中去,抵达主计算机对HID灯电子镇流器组群的操控和通讯,以完结依据实践环境和需求对HID灯的准确调光和状况查询。
现在发展状况:DALI部分主程序现已完结,编译经过,并正在仿真调试。PID部分正准备开端。
- 项目关键技能及立异点的论说;
答:(1)、用FPGA替代MCU来完结对HID电子镇流器的操控及调光。
(2)、将DALI通讯协议融入操控芯片,便利外界对电子镇流器的监测和操控。
(3)、用脉宽调制(PWM)技能完结对HID灯的准确调光。
- 技能老练性和可靠性论说:
答:现有HID电子镇流器的操控一般是用MCU加专用操控芯片来完结,但是,现阶段绝大多数比较老练的电子镇流器的操控芯片都是针对荧光灯的,针对HID灯的电子镇流器的操控芯片简直呈现空白状况。但咱们对HID灯电子镇流器比较了解,因而咱们以为咱们的规划具有可完结性。
经过系内专家及相关材料证明,咱们的规划具有可靠性,具体可靠性咱们会在整个规划完结后,合作已规划好的外围电路加以承认。
项目施行计划
1.计划基本功用框图及描绘
用框图的方法并加以简略的描绘简述施行本项意图技能计划。
以下榜首幅图是咱们的DALI的体系功用框图,所谓DALI(Digital Addressable Lighting Interface),是一种数字式可寻址照明通讯协议。
由图可知,咱们的体系选用放电型上电式复位的结构。上电后正常状况是rst=1,从而对各信号进行赋初值。为了避免正常作业期间,再次发生rst=1的误复位操作,咱们从而选用了先对rst采样并检测的办法:假如rst=1,履行200ms的延时,然后再次检测rst,如还为1,则非误触发;不然就有可能是搅扰等发生的误触发,对此咱们不做呼应。
依据主机在每次发送address 和command之前,会在IRQ引脚对咱们的体系进行下降沿触发,因而咱们在复位后就等候IRQ下降沿触发信号。假如被触发,咱们就开端接纳数据,进入接纳环节。
在进行对接纳环节的描绘之前,咱们先来简要地阐明一下Dali操控器指令的数据帧结构。Dali操控器指令的数据帧结构包含一个开端位,八个地址位 (榜首字节),八个数据/指令位 (第二字节),和两个中止位。榜首字节为address字节,第二字节为command字节。可以看出Dali的操控指令反常简略,那么是否能确保不呈现过错,并完结准确调光呢?
答案是令人定心的。由于Dali数据传送选用以8bit为载体,若前4位为0,后4位为1,则中心的上升沿来表明1;若前4位为1,后4位为0,则中心的下降沿来表明0的传递信号方法。因而,对数据0和1的传送十分安稳,不容易遭到搅扰。此外,每帧数据还包含了:一个上升沿作为开端位,两个字节作为address和command,两位接连的高电平作为完毕位(在实践中应为2*8bit的高电平)。一共加起来实践上是发送了152bit的数据。
进入接纳环节,咱们才算是开端了真实意义上的Dali程序环节。咱们选用rec_bit代表咱们现已接纳的实践bit数目(也即接纳到的addresss和command指令中的位数),选用rec_position作为每一个bit代表的8bit中所接纳的数据位。在这个环节中咱们逐位接纳数据,当接纳进程中发生过错,则中止接纳,并回来判别IRQ是否触发状况. 假如整个接纳进程(开端位,中心位,停止位)全无过错,则向RAM中相应字节写入”00000001”,标志可以进入数据处理阶段(handle_data)。.
数据处理可依据address 和command的不同分为: 灯调光专用指令, 一般指令, 特别指令三种 :
由于咱们接纳的是一个十六位数据,而且其间前八位表明地址(8bit地址结构为YAAAAAAS),后八位表明command 和调光值,当接纳到的十六位数据的最高位,即Y=0时表明为短地址,Y=1时表明为组地址,S为挑选标志位,当S=0时表明后边的是调光等级值,S=1时表明后边的是指令
灯调光专用指令(lamp_setlevel),咱们是做成元件例化(component)的方法,因而它并行于其他process。它包含了所要抵达的调光值,最大调光值,最小调光值等输入值以及越限过错,现在的调光值(也即前次所抵达的调光值),极值调光值判别和tch0,tch1等输出值。当所要抵达的调光值为FF时,表明的是demo方法;当为00时,表明的是OFF方法,即关灯;当FE时,表明极值调光值,此刻极值调光值判别置1。其他值时,依据所要抵达的调光值的不同,tch0或tch1的值也置不同的值,这两个输出将是PWM的输入信号。这儿具体的就不说了,请详见程序lamp_setlevel。
一般指令,(normal command) 则分为直接功率操控指令(indirect arc power control commands),全体装备指令(general configuration),功率参数设置(arc power parameters settings),体系参数设置(system parameters settings),问询相关状况信息(queries related to status information),问询相关功率参数设置(queries related to arc power parameters settings),问询相关体系参数设置(queries related to system parameters settings) 等。
以下咱们简略介绍程序中一些二进制代码所对应的指令,列表如下:
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_PHYS%&&&&&%AL_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 |
特别指令是播送发送的,一切的镇流器都能收到,其方法为address的八位内容为”101XXXX1”或”110XXXX1”.而且每条后边跟随着的八位command中存储的是对应的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 是停止特别进程的指令,履行后一切特别方法的处理进程都会被停止(以address_time=00000000的方法完结); A3 XX 将会向DTR中存储command的八位数值”XXXXXXXX “; A5 XX是初始化指令,这一指令在接下来的100毫秒内将被再次接纳到; A7 00 是发生随机序列指令,镇流器将依据它发生一个新的随机地址,共有24位,分为高,中,低三个字节存放在三个存储器中.咱们选用三个时钟(clk_main, clk_dali, clk_20)驱动的三个循环计数器计数,当需求发生随机地址时,把其时的计数值赋给三个存储器即可; A9 00是比较指令,镇流器会将已存储在search_address_h, search_address_m, search_address_l中的组合寻址地址(由主机发来的)与它的随机地址比较,假如随机地址小于或等于组合寻址地址,则镇流器不被吊销,答复YES(answer=11111111); AB 00 是吊销指令,也即随机地址和组合寻址地址持平的镇流器将被吊销(由于短地址现已承认)而不再呼应比较指令; B1 HH,B3 MM,B5 LL 别离是将command中的数值存入search_address_h, search_address_m, search_address_l; B7 XX实践为1011 0111 0AAAAAA1,履行时假如镇流器被选中,则会将收到的6位地址保存为它的短地址(被选中的条件是:1.镇流器的随机地址和组合寻址地址持平 或许2.灯具和镇流器之间没有衔接,则在接纳到指令BD 00后,镇流器就会被物理挑选探测到) [留意:当B7 XX为1011 0111 01111111 时,短地址将被删去.]; B9 XX 是承认短地址,当接纳到的短地址和镇流器本身的短地址相同则答复YES; BB 00 假如镇流器被选中,则会向主机回发短地址(0AAAAAA1); BD 00 履行此指令时,镇流器被置为物理挑选方法(selection=00000001),这一方法下不能进行组合寻址地址和随机地址的比较.
接着就是发送这一块了。前面临flag(也即dataout1信号)的02的置位,使得发送得以进行。所以,在clk_dali时钟上升沿的触发下,发送环节开端串行输出。在这儿,Dali数据传送仍选用以8bit为载体,若前4位为0,后4位为1,则中心的上升沿来表明1;若前4位为1,后4位为0,则中心的下降沿来表明0的传递信号方法(这些在程序中有具体的发送过程描绘,恕不多叙)。值得留意的是:
- answer是8bit的输出,它的串行输出有必要一步步的履行,因而用temp_value来记载每一位的值,并依照Dali数据传送规矩传出。
send_position与rec_position有些不同,send_position是一向加上去的,没有清零。这样,在send_position=24时,开端开端位上升沿的输出,到27bit完毕,在从28到31bit是下降沿的输出。然后从32bit起,开端数据传递。当抵达96bit时开端完毕位的16bit高电平,然后再在112bit对flag(dataout1)和send_position清零。
上图是咱们联合主控计算机,运用DALI通讯协议,进行HID灯恒功率作业调理的PID算法框图。
BUCK电路是电子镇流器的逆变电路,经过对它采样可得灯的作业电压与电流瞬时值,咱们先经过滤波网络,LEM阻隔和二阶滤波电路,然后进行采样并A/D转化,得到十位的数字值,然后用预存储的pref 与所得的电压值作除法,得到电流参考值,并与所采样的电流值比较作差,得到差错e(k),然后经过图示的pi算法别离进行乘法(*KP)和累加()后乘法(*KI),然后将两者所得成果再作加法,所得U(k)经图示过程转化为PWM脉宽改变,从而操控功率管的开关时间,减小差错,完结负反馈,终究抵达恒功率操控。
2.需求的开发渠道
完结本计划所需求的基本功用、功用、接口;
所需求的方针FPGA开发渠道,简述为什么需求此渠道;
是否需求其它配套的开发工具;
答:开发渠道:Spartan-3E,50万门。原因:有满足的门,而且自带A/D,D/A,有较高的运转速度,可以对数据进行及时的处理。
完结本计划所需求的基本功用、功用、接口:Flash,DRAM,SRAM,USB2.0,A\D,D\A,LED显现,RS-232。
其它配套的开发工具:ISE8.2i 配套的modelsim
3.计划施行进程中需求开发的模块
在本计划中需求研发、开发的功用首要模块,以及开发的方法
答:DALI模块,PID模块。
先用VHDL在ISE8.2i对DALI和PID模块进行编程描绘,并在时序仿真及布局布线后,生成电路网表,终究烧写进FPGA试验板中,完结电路。
4.体系终究要抵达的性能指标,论说本项目终究完结时所想象抵达的方针。
答:依照DALI的通讯协议进行正确的数据承受,发送和处理。对HID进行有用而准确的功率调制,并使其可以安稳作业。
需求的其它资源
1.规划输入输出功用子板
答:子板功用描绘:具有十位以上的A/D,D/A转化功用,多个LED,支撑JTAG数据传送,20M以上的晶振时钟若干,USB2.0接口。
接口阐明:USB2.0接口,具有十位以上的A/D,D/A转化接口各两个以上。
2.测验设备:万用表、示波器、逻辑剖析仪等;250W的HID灯及其电子整流器、mosfet等电路元件
3.仿真,开发工具:ISE8.2i 和配套的modelsim。