微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 工业电子 > 基于TMS320VC5410的DES加密系统设计

基于TMS320VC5410的DES加密系统设计

时间:12-28 来源:互联网 点击:
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之间的数据是用户数据区,可以在这些地址里存放加密系统的密钥和其他的用户信息。

3.2 PC通信软件设计

3.2.1 MeBSP0的初始化配置

首先通过SPCR1O=0x0000,SPCR20=Ox0000把RRST与XRST位设置为‘O’,使串口复位。设置PCR0=0x0BOC;采样率由DSP内部产生,接收与发送帧同步信号为低有效,时钟上升沿发送数据、下降沿接收数据。其次通过接收控制寄存器RCR1O(子地址为02h)和 RCR20(子地址为03h)来对DSP串口接收模式进行设置,令RCR10=0x0940;RCR20=0x0004;接收帧长度10字、每字16 bit,忽略除第一个帧同步后的其他帧同步信号。通过传输控制寄存器XCR10(子地址为04h)和XCR20(子地址为05h)来对DSP串口发送模式进行设置,令XCR10=0x0940;XCP20=0x0004;使数据的发送与接收模式一致。另外,采样率发生器控制寄存器SRGR10(子地址为 06h)和SRGR20(子地址为07h)控制采用率发生器的工作模式。本系统中选择PC机的串口工作波特率为38 400,采样率发生器计算公式为:

CLKGDV=CPU工作频率/(16x波特率)-1

由于TMS320VC5410工作频率为100 MHz,因此CLKGDV=100 000 000/(16x38 400)-1=161,设置SRGR1=0x00A1,SRGR2=0x2000;最后通过SPCR1=0x0001,SRGR2=0x2000;对串口使能,处于可操作状态,至此完成了McBSPO的初始化配置。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top