基于Nios平台的光信号采集片上系统设计
为了方便系统对FBG输出的光信号进行处理,必须将其转换成电信号,我们采用光电信号
转换器未完成这方面的工作。在本系统中,因为发光源的波谱范围是808~858nm,所以我们选用了波谱范围为200~1100nm的2048个像素的灰度线列CCD图像传感器ILX511B。
CCD将光信号转换成模拟电信号,每个像素产生一个模拟电信号,这样CCD每次进行光电转换就产生2048个模拟电信号;同时,它将这2048个像素位置串行地“封装”成一个有效数据字段,可以在外加时钟同步信号(CLK)和芯片使读端(ROG)作用下,从CCD中读出数据。外加的同步时钟信号由2087个时钟脉冲组成,在每个时钟脉冲作用下,一个数据位被读出。这2087个数据位由以下几部分组成:首部伪数据字段(33个数据位)、有效数据字段(2048个数据位)、尾部伪数据字段(6个数据位)。需要注意的是,为了提高电磁兼容性,CCD的工作方式应该选择为采样一保持方式;同时,CCD在上电后处于内部电路初始化阶段,为了避免得到错误的数据,最初22 500个时钟脉冲用于初始化CCD,不要在此阶段读出数据。
4 ADC接口设计与Altera Nios平台
4.1 ADC接口设计
经过CCD传感器转换输出的模拟量,必须通过ADC转换器转换成数字信号,这样系统才可以处理这些信号。因为CCD的动态范围是48.5dB,根据公式
ADC精度≥动态范围(dB)/20×log2
可以计算得到ADC精度≥8.06,所以选择ADC的精度必须是9位或9位以上的;同时,根据以下公式计算ADC的速度:
fs=1×2MHz(CCD的最大时钟频率)=2MHz(采样和保持方式)。
通过上述计算和分析,得到所需ADC的两个主要特性指标,即精度至少要9位,采样的速率必须至少2Msps。
现在,有很多ADC转换器可以应用于CCD图像处理。在综合考虑了诸多因素后,我们选择Linear的串行ADCLTC1402。
在设计ADC接口电路时,要注意以下一些问题。首先,由于LTC1402内部输入信号的“保持-采样”电路的速率达到80MHz,所以,外部的噪声和干扰都可以通过LTC1402的输入端对A/D转换产生影响。根据LTC1402数据手册的要求,我们解决的方法是,在LTC1402的输入端加上一阶的滤波电路,将输入信号的频率限制在一定的范围内。其次,CCD的输出对于外界的阻抗变化比较敏感,如果将ADC的输入端与CCD的输出直接相连,则CCD的负载可能随ADC输入端内部阻抗的变化而变化。基于以上两点考虑,我们在CCD和ADC之间设计了缓冲电路,用于阻抗匹配和滤波。缓冲接口电路如图3所示。
由图3可计算ADC的输入最高频率:
fg=1/[(2×π×R5×C3)]=10.3MHz。
4.2 Altera Nios平台
在细致分析系统的特点后,我们决定选择专门针对SOPC应用的Altera Excalibur开发套件。开发套件包括以下部分:
*Nios处理器以及外围接口;
*Quartus II开发软件;
*GNDUro编译器;
*基于APEX EP20K200E FPGA的开发板;
*相关的开发例程。
图5 时钟和控制信号发生器的仿真时序
我们使用集成在QuartusII中的SOPC Builder工具来配置生成片上系统。SOPC