基于Nios平台的光信号采集片上系统设计
共有4个引脚,分别是MISO(Master Input Slave Output)、MOSI(Master Output Slave Input)、SCLK(同步时钟)和SS_n。当SS_n为低电平时,从设备可以在SCLK同步作用下读入数据。系统中的SPI接口是从设备,所以只使用MOSI、SCLK和SS_n三根引脚。图6是Nios中SPI与ADC的接口示意图。
本文链接地址:http://www.oyaya.net/fanwen/view/177226.html
从ADS的芯片特性可知,当ADC_CONV在一个高电平的作用下,ADC开始进行模数转换。ADC_CONV回复到电平后,因为SS_n和ADC_CONV连在一起,所以Nios中的SPI就处于可以读入数据的状态了;同时,在ADC_SCK的作用下ADC输出数据,而SPI也在相同的时钟SCLK的作用下,通过MOSI读入数据。为了能够准确得到数据,还要将SPI寄存器rxdata的位数设为13位。软件中,我们将通过等待SPI寄存器的rrdy位的置位,来读取rxdata中的数据,与此同时寄存器中roe的状态决定此帧数据的读取过程中是否存在数据溢出现象。以下是相关的读取数据的软件代码。
do{
//读一行CCD数据
for(i=0;i<2069;i++){
//等待,直到准备好
while(spi->np_spistatus&np_spistatus_rrdy_mask)==0)
;
//从SPI数据寄存器读数据
c[i]=spi->np_spirxdata;
}
//读覆盖状态
b=spi->np_spistatus&np_spistatus_roe_mask;
}while(b==8);
结论
本系统经过仿真测试,其功能达到了设计要求,并用HP逻辑分析仪验证了系统功能。
《基于Nios平台的光信号采集片上系统设计(第4页)》