基于DSP的串行外设通信的实现方法
摘 要:介绍了基于数字信号处理芯片TMS320F241的串行外设接口(SPI)与外设实现串行通信的方法,并以X5043为例,给出了用SPI实现电子标签功能的方法。
随着高速数字信号处理器(DSP)在信号处理和系统控制领域的广泛应用,基于DSP控制系统的可靠性和保密性问题也越来越突出。利用DSP内嵌的高速同步串行接口模块(SPI),和Xicor公司提供的X5043芯片进行串行通信,可以很方便地提高系统的工作可靠性和保密性。
TMS320F241是TI公司TMS320F24x系列定点高速数字信号处理器(DSP),具有高速同步串行接口模块(SPI)。Xicor公司提供的X5043芯片,可以和具有同步串行接口的DSP直接相连。本文详细介绍了SPI对X5043进行串口通信的硬件连接和软件实现方法,从而很好地提高了基于TMS320F241的某雷达控制系统的可靠性和保密性。
1 TMS320F241的串行外设接口SPI与X5043的特性
1.1 SPI的基本特性
该SPI是一种高速同步串行I/O口,一般用来实现DSP控制器之间和DSP与外围设备之间的通信。他的数据寄存器都是16b字长的,可以通过编程控制数据的字长(1~16b),输出和接收均采用双缓冲结构,最大传输速率在主从操作模式下都为CLKOUT/4。SPI有4个引脚,分别为:SPISIMO(SPI从片输入主片输出端),SPISOMI(SPI从片输出主片输入端),SPICLK(SPI时钟端)和SPISTE(SPI从片使能端)。在SPI模块内有9个控制SPI操作的控制寄存器,他们决定了系统的时钟特性、数据传输速率和中断操作,保存系统传输的数据,记录SPI的工作状态,确保SPI与外设能够有效地进行串行通信。
SPI有两种操作模式:主操作模式和从操作模式。主片控制了时钟信号(SPICLK),他可以在任何时候通过发送SPICLK信号来启动数据传输。无论是主片还是从片,数据都是在SPICLK的某个边沿移出移位寄存器,在SPICLK相反的边沿锁存在移位寄存器中,并且输出和接收数据都是同时进行的。多个从片可以捆绑接入网络,在任一时刻只有一个从片被选中,也只有一个从片可以占用SPISOMI线。
1.2 X5043的基本特性
X5043的主要特点如下:可编程的看门狗定时器,可通过程序选择看门狗定时时间;工作电压检测,当VCC低于预置的门限电压时产生复位信号;低功耗设计;518×8位串行E2PROM,写时钟速率可达1MHz;数据块锁定功能;片内偶然性的写保护功能,保护重要数据;3.3MHz的时钟速率;具有页操作模式,可对E2 PROM中的数据存储单元进行连续的读/写操作。
8脚封装的X5043引脚有:片选端CS,串行数据输出端SO,串行数据输入端SI,写保护输入端WP,串行时钟输入端SCK,复位信号输出端RESET,正电源输入端VCC和电源地端VSS。用+5V电源供电。X5043把看门狗定时器、工作电压监测和E2PROM三大功能集于一身,从而可以实现对系统的软件复位、硬件复位和电子标签的读/写。
X5043内含一个8b指令寄存器和一个8b的状态寄存器。其指令有6个:WREN(写允许),WRDI(写禁止),RSDR(读状态寄存器),WRSR(写状态寄存器),READ(读数据),WRITE(写数据)。状态寄存器的格式如下:
WD1,WD0是看门狗定时位,为非易失性位,用于选择不同的定时时间。BL1,BL0是存储器块保护位,为非易失性位,用来选择需要保护的存储器阵列,选定保护的块只能读不能写。WEL是“写使能”锁存器状态位,为只读位。为“1”时,“写使能”置位;为“0”时,“写使能”复位。WIP是片内写操作状态位,为只读位。若WIP为“1”,说明片内写操作正在进行,此时不能向SI上发送数据,否则会丢失;若WIP为“0”,则片内无写操作,可以发送。
2 SPI与X5043的硬件连接
让SPI工作在主操作模式下,X5043作为从片,两者的引脚连接如图1所示。SPI通过SPICLK脚向整个通信网提供串行时钟,控制着系统的数据传输;通过SPISTE脚给X5043提供片选信号,低电平有效;通过SPISIMO脚把数据输出到X5043的SI脚上;通过SPISOMI脚接收X5043的SO脚上的数据。X5043的
和VCC相连,让“写使能”始终处于置位状态,
脚本和DSP的复位脚相连,给整个系统提供复位信号。
3 电子标签功能的实现
由于X5043芯片把看门狗定时器、工作电压监测和E2PROM三大功能组合在一个封装内,利用这一特性,可以方便有效地提高整个系统的可靠性和保密性。
在初始化时,通过DSP的SPI口向X5043发送WRSR(写状态寄存器)指令,设置WD1和WD0位来设置看门狗的启动时间。如果系统在设定的时间间隔内启动失败时,X5043会送出一个复位信号,让系统重新启动,从而保护DSP芯片在异常情况下免受损伤,提高整个系统的可靠性。当工作电压低于设定的门槛电压时,X5043也会发出复位信号,以保证整个系统能够正常地工作,进一步加强了系统的可靠性。
在初始化时,设置BL1和BL0来选定需要保护的存储器阵列,选定的块只能读不能写,从而可以把与系统保密相关的信息预先存储在相应的存储阵列里,随时需要更新的数据存储在没有选定保护的存储阵列中。在系统维护和 升级时,可以通过测试相应的数据来验证产品的真伪,从而提高系统的保密功能。
某厂为了给基于DSP的雷达控制系统进行加密,需要把序列号、生产日期和连续工作时间保存下来,必要时可读出相应的数据来验证产品的真伪。用SPI和X5043就可实现这种电子标签的功能,把系统的序列号和生产日期存储在选定保护的存储阵列中,一旦写入就不可更改,从而达到保密的效果。其主要功能模块和相应程序模块如图2所示。
现以SPI向X5043写入产品序列号为例,详细介绍基于DSP的串行通信的实现方法,其他电子标签功能的实现大同小异,只是程序入口参数赋值不同。序列号存放在DSP中首地址为SERIAL的4个数据存储单元中,现要写入X5043存储阵列的第0页10h开始的8个单元。由于数据保存在X5043的存储阵列中同一页的连续地址单元中,可以采用页操作模式。DSP的数据存储器都是16b的,而X5043的存储阵列是8b的,在编程时要注意数据传输的过程。SPI向X5043写入序列号的程序流程图如图3所示。
4 结语
基于DSP的开发在工程设计中的应用越来越广泛。本文立足于在实际工程设计中遇到的课题,用比较简洁有效的方法实现了基于DSP的串行外设通信,并在实践中得到了很好的应用。
|