在现代雷达及电子战接收机中,由于器件的温度漂移特性而引起接收机指标下降的现象普遍存在。为了保障接收机的测量而对测量数据进行温度补偿是不可或缺的环节,而在温度补偿系统中,温度传感器的设计是内容。本文介绍某型号电子战接收机中温度补偿系统的设计,并给出部分关键程序代码。
DS1621是Dallas公司推出的一款温度传感器芯片。该芯片采用8脚贴片封装,+5 V供电,基于I2C总线机制传送温度数据。可以并行连接,有3条地址线输人口,因此可组成8个地址,多可将8个DS1621并联使用。DS1621引脚如图1所示。
1 I2C总线传输机制
I2C总线依靠SDA(串行数据线),SCL(时钟控制线)这两根连线实现完整的全双工同步数据传送。总线工作时,由SCL传送时钟脉冲,由SDA传送数据。总线传送的每帧数据均为1字节(8 bit),启动I2C总线后,传送的字节个数没有限制,每传送l字节后,对方回应一个应答位。发送数据时首先发送数据的MSB(位)。传输机制如下:
a) 起始:在SCL为高电平期间,SDA出现由高电平向低电平的变化,用于启动I2C总线,准备开始传送数据。
b) 停止:在SCL为高电平期间,SDA出现由低电平向高电平的变化,用于停止I2C总线上的数据传送。
c) 应答信号:I2C总线的第9个脉冲对应应答位,若SDA上显示低电平则为总线应答,若SDA上显示高电平则为非应答。I2C线起始信号或应答信号之后的第1~8个时钟脉冲对应1字节的8 bit数据传送。在脉冲高电平期间,数据串行传送;在脉冲低电平期间,数据准备,允许总线上数据电平变化。
2 温度补偿系统结构
本文所述的电子战接收机为C波段信道化接收机,该信道化接收机采用超外差结构,由5个组件盒构成,信道数为N,每个组件盒信道数目为N/5。每个组件盒的温度未必一致,所以与之对应的温度传感器的数目为5个,分别置于5个组件盒中。
5个温度传感器芯片DS1621并联,接收机的中央处理器为一款FPGA芯片,基于FPGA设计的总线控制器通过SDA和SCL顺序读取每个温度传感器的温度编码。根据温度码和接收机对信号的测量数据查找误差表,然后用误差修正测量数据,便可以得到较准确的测量结果。
误差表的建立要根据接收机在不同温度下对整个动态范围内不同强度信号的测量误差来建立,这里不再赘述。
3 I2C总线控制器的VHDL语言描述
I2C总线控制器的设计采用状态机的设计方法,采用VHDL语言编程。这里仅提供I2C总线控制器向单个从没备DS1621中写1字节的程序代码,从从设备读取温度编码的代码与之类似。
下面代码完成的功能为I2C总线控制器向DS1621中写单个字节:
4 实验结果
将VHDL语言程序到FPGA中,用TDS5104示波器观察到的FPGA与DS1621通信时序见图3。
图3为FPGA向DS1621发送读命令AAh(十六进制)及DS1621给出温度编码“00010001”(17℃)的时序图(图中示波器1通道的3.3 V电平为FPGA给出的控制信号,5 V电平为DS1621给出的温度编码)。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。