• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 基于TMS320VC5410的DES加密系统设计

基于TMS320VC5410的DES加密系统设计

录入:edatop.com     点击:

为了提高硬件的利用率和解决DSP片上通用IO口较少的问题,本系统设计将MeBSPI配置为通过IO口实现其与IC卡片通信的模块。由于McB-SP引脚中的DX只能配置用作通用输出脚,DR只能配置用作通用输入脚,不方便程序编写对引脚状态控制。所以在DSP对卡片读写的硬件电路中选择了MeBSP1 的FSR1、CLKR1、CLKX1、和FSX1这4个引脚,它们均可以通过16位的引脚控制寄存器(PCR)配置为通用I/O引脚。FSR1引脚通过 CD4066开关电源芯片来控制SLE5542卡片的上电与掉电;由CLKR1连接卡片的RST触点,卡片复位时改变引脚的高低电平状态;CLKX1引脚与IC卡片的时钟触点CLK相连,该引脚状态的高低变化为卡片正常工作提供时钟信号;FSX1连接卡片数据I/O触点,负责DSP与IC卡片之间读写命令字和用户有用数据的传送。注意CLKX1和FSX1引脚要接上拉电阻,且FSX1配置的输入或输出状态要根据DSP与IC卡之间数据流向而定。

为了使McBSP1的相关引脚工作在系统需求的通用I/O状态,首先需要将该串口的控制寄存器SPCR1中的RRST位和SPCR2中的XRST位均设置为‘O’,使串口复位,串口操作禁止。然后设置引脚控制寄存器PCR中的XIOEN和RIOEN为‘1’,使串口的接收和发送引脚均工作在通用I/0模式;另外将FSRM、CLKXM和CLKRM位均设置为‘1’,使FSR1、CLKX和CLXR引脚作为通用输出管脚,将要输出的值分别存储在PCR中的FSRP位、CLKXP和CLKRP;对于FSXM位的设置,则需要根据通信时的具体情况而定。

2.3 DSP与PC通信模块设计

系统设计中选择了McBSP0作为TMS320VC5410从外界PC机接收明文数据和输出密文的通道,直接通过PC机的RS232异步串口与TMS320VC54 10之间进行加密解密数据的传送。这种方法通过软件实现PC机与DSP之间的串行双工通信,它的硬件设计简单且不会过多占用CPU的时间,可以实现数据的高速传输。

RS232异步串口采用负逻辑传送数据,以10 V电压状态表示数据‘O’,-10 V电压状态表示数据‘1’;而DSP的IO口则以3.3 V表示高电平‘1’状态或者无数据传送,以0 V表示低电平‘O’状态。因此为了使TMS320VC54lO的多通道缓冲串口与RS232接口进行通信,需要电平转换电路,本文使用了MAXIM公司MAX232电平转换器,如图3所示。

3 系统软件设计

选用TI公司CCS(Code Composer Studio)作为该加密系统软件设计时的开发和调试工具,使用C语言和汇编混合编程的模式完成软件设计。由于C语言编程具有便于阅读、维护、交流和可移植性好的特点,因此采用C语言完成整个程序的主框架设计,在对时间要求比较苛刻的地方或对代码运行效率有较大影响的场合采用汇编指令编写。

3.1 DSP读IC卡软件实现

3.1.1 McBSP1串口配置

当把卡片插入卡座时,状态开关选通,并且电路板上提示灯亮表示插卡到位,DSP内存中的读卡状态标志位设置为‘1’。TMS320VC5410开始初始化 McBSP1,使其工作在通用IO口状态,采用子地址寻址的方式对SPCR11(映射地址为0049h,子地址为00h)、SPCR12(子地址为 01h)和PCR1(子地址为0Eh)等寄存器进行配置。配置代码如下:

SPCR11=0x0000;

  SPCR12=0x0000;

  PCR1=0x3F00;

此时FSR1、FSX1、CLKR1和CLKX1均用作通用输出管脚。把PCR中的FSRP位设置为‘O’,PCR1&=0xFFFB;则卡片Voc触点电平为低,卡片处于掉电状态;通过语句PCR1l=0x0004把FSR1引脚置高电平给卡片上电。

由于DSP的FSX1引脚与卡片的数据I/O触点相连,要求FSX1引脚具有双向传输的功能,但该引脚在同一时刻只能处于输入或输出一种状态,为此定义了以下两个宏实现引脚在输入与输出状态的改变。

3.1.2 复位与复位应答

DSP检测到读卡状态位为‘1’时,给卡片上电,CLK(和RST保留于状态L,开始运行读卡程序将卡中存储的密钥读取至内存中。首先按照 ISO7816-3标准对SLE5542卡片进行应答复位,复位可以发生在操作过程的任意时刻。之后,RST线被置于H状态,并维持至少15μs。在 RST状态由高电平到低电平的转换期间CLK提供一个时钟脉冲,卡片内的地址计数器(address counter)清零,I/O引脚输出有效数据的第1位,这一数据可视为复位应答;在此后连续31个时钟脉冲的作用下,主存储器中的前4个地址中的32位标头数据被读出;下一个时钟脉冲使I/O引脚变为高阻状态;此时卡片复位与复位应答完成。

3.1.3 DSP读卡主程序设计

图4为DSP读IC卡主程序设计。卡片复位应答之后,则处于等待指令输入的状态。SLE5542每个指令均由控制字节、地址字节和数据字节组成,传输时从控制字节的最低位开始。控制字节传送完毕之后,依次传送地址字节和数据字节,均为低位在前。每个指令的传输都开始于一个Start条件 (在时钟信号为高电平状态,通过DSP发送卡片IO口一个下降沿),结束于Stop条件(在时钟信号为高电平状态,通过DSP发送卡片IO口一个上升沿)。根据指令作用的不同。SLE5542接收完成后可能处于数据输出模式(DSP读卡)或者内部处理模式(DSP写卡)。

通过TMS320VC5410发送读卡命令和所要读取内容的地址(N=0,…,255)后,在CLK信号的作用下卡片将主存储器中的数据按比特移至I/O 引脚发送至DSP内存中。读取数据完成后,额外的一个时钟信号将使I/O引脚变为高阻状态,卡片退出输出模式等待接收新的指令,也可以用Break条件 (在CLK为低时,把RST信号由低电平变为高电平状态)结束此次操作。

图5显示了TMS320VC5410对SLE5542卡片读卡程序的调试结果,为了验证读卡功能的实现,系统读取了卡片中的所有字节的内容。其中前8个字节为‘A2131091FFFF8115’为IC卡的厂商标识;之后地址8~20的13个字节全为‘FF’是写保护区;地址21~26是6个字节的用户代码‘D27600000400’,之后又是5个字节的写保护区;从地址32~255之间的数据是用户数据区,可以在这些地址里存放加密系统的密钥和其他的用户信息。

作者:於 辉,石 涛,赵旭东 桂林电子科技大学 来源:现代电子技术

上一篇:FTTx场景下的IPv6引入策略
下一篇:模拟I2C总线多主节点通信原理及实现方法

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图