打印
[DSP]

基于DSP的串行外设通信的实现方法

[复制链接]
721|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Violin11|  楼主 | 2019-6-15 23:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于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的串行外设通信,并在实践中得到了很好的应用。

使用特权

评论回复

相关帖子

沙发
Violin11|  楼主 | 2019-6-15 23:50 | 只看该作者
基于DSP的串行外设通信的实现方法

新建 Microsoft Word 文档 (自动保存的).pdf

434.42 KB

使用特权

评论回复
板凳
quickman| | 2019-6-16 16:34 | 只看该作者
dsp28335 sci的串口是232 还是485   

使用特权

评论回复
地板
jstgotodo| | 2019-6-16 16:35 | 只看该作者
板子与PC机没有共地?         

使用特权

评论回复
5
iamaiqiyi| | 2019-6-16 16:35 | 只看该作者
DSP 串口 的通道数是指什么?  

使用特权

评论回复
6
dzfansman| | 2019-6-16 16:35 | 只看该作者
dsp中2812串口有哪几种类型   

使用特权

评论回复
7
sanxingnote7| | 2019-6-16 16:35 | 只看该作者
DSP开发板上的外设扩展总线  

使用特权

评论回复
8
backlugin| | 2019-6-16 16:36 | 只看该作者
dsp串口烧写程序时用的是哪个a口  

使用特权

评论回复
9
sdCAD| | 2019-6-16 16:36 | 只看该作者
c28x dsp的串行通信接口有哪些特点  

使用特权

评论回复
10
fengm| | 2019-6-16 16:36 | 只看该作者
DSP 怎样把串口发送来了数转换成浮点型数据

使用特权

评论回复
11
updownq| | 2019-6-16 16:37 | 只看该作者
帮忙编写一个DSP2808串口通讯程序  

使用特权

评论回复
12
sanfuzi| | 2019-6-16 16:37 | 只看该作者
dsp28335怎么实现500k串口通信  

使用特权

评论回复
13
sdCAD| | 2019-6-16 16:37 | 只看该作者
DSP串口485通信的硬件结构和485能否用3.3v供电

使用特权

评论回复
14
quickman| | 2019-6-16 16:37 | 只看该作者
rs232串口与dsp上的sci相互通信吗  

使用特权

评论回复
15
backlugin| | 2019-6-16 16:37 | 只看该作者
DSP与PC机的RS485串行通信怎么在dsp中设置地址  

使用特权

评论回复
16
jstgotodo| | 2019-6-16 16:37 | 只看该作者
DSP带通用串口?            

使用特权

评论回复
17
sanxingnote7| | 2019-6-16 16:37 | 只看该作者
想用这个SPI产生的时序送到另一个板子上的芯片中  

使用特权

评论回复
18
iamaiqiyi| | 2019-6-16 16:37 | 只看该作者
如何编写DSP通过串口向PC发送数据吗?  

使用特权

评论回复
19
dzfansman| | 2019-6-16 16:37 | 只看该作者
DSP 的 程序 问题 有文档吗?  

使用特权

评论回复
20
sanfuzi| | 2019-6-16 16:37 | 只看该作者
需要接两路RS485串口的DSP有哪些  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

717

主题

1010

帖子

3

粉丝