基于Xilinx FPGA的片上系统无线保密通信终端

来源:21IC 作者:—— 时间:2011-04-20 14:48


  ②密钥扩展模块

  本设计采用了Xilinx IP核Single Block RAM 位宽32,深度64,在程序的开始,由用户设置的初始密钥系统按照密钥扩展算法生成的10轮扩展密钥,将生成的密钥按照地址次序从低到高放入RAM中,在每一轮执行addroundkey时取出对应轮数的密钥,与明文相加(异或)。

                                                                        图2 AES解密模块仿真波形
  
        3.2 无线通信模块

  在本系统中采用TI 公司的CC2420来实现数据的无线通信CC2420工作于免授权的2.4GHz频段,33个16位配置寄存器、15个命令选通寄存器、1个128字节的RX RAM、1个128字节的TX RAM、1个112字节的安全信息存储器。TX和RX RAM的存取可通过地址或者用两个8位的寄存器。主机可通过SPI总线设置其工作在Normal模式,通过SPI总线MOSI,MISO接口对TX FIFO和RX FIFO及状态进行写和读的操作,将数据写入和读出RAM来实现与CC2420的数据传输,通过触发CC2420STXON,SRXON来实现数据的无线发送和接收。表二是本系统CC2420涉及的寄存器及其功能。


  表2 是本系统CC2420涉及的寄存器及其功能

  3.3 软核控制模块
 
  3.3.1 软核MicroBlaze简介
 
  MicroBlaze 是一款由xilinx公司开发的嵌入式处理器软核,其采用RISC(Reduced Instruction Set Computer)优化架构。它符合IBM CoreConnect标准,能够与PPC405系统无缝连接[3]。MicroBlaze是一个非常简化却具有较高性能的软核,在Spartan3E系列FPGA中它只占400个Slice,相当于10万门FPGA容量的1/3。其为哈佛结构,32位地址总线,独立的指令和数据缓存,并且有独立的数据和指令总线连接到IBM的PLB总线,使得它能很容易和其它外设IP核一起完成整体功能。支持SPI、I2C、PCI、CAN总线,支持重置、硬件异常、中断、用户异常、暂停等机制,可配置UART、GPIO等接口。
 
  3.3.2 microblaze的控制流程
 
                                               图3 microblaze的控制流程
 
  3.3.3 microblaze的控制流程主程序
 
  main () {
 
  Initial()//初始化系统;
 
  CmdSend()//上位机命令输入;
 
  DataRev()//数据接收;
 
  AESEny()//数据加密;
 
  DataPackage()数据打包;
 
  CC2420Sen()加密数据发送;
 
  Return success; }
 
  结语
 
  本系统将软件加解密(在50M的频率下使用软件来进行加解密)与硬件加解密时间做了对比:如表3所示。
                                           表3 软件和硬件加密对比
                                        表4 AES加密占用FPGA资源统计表
 
  该方案充分有效的利用了Spartan 3E的资源,尤其为可编程逻辑和RAM的利用。其中AES加解密中的乘法运算均由LUT查找表来实现,用空间换取时间,获得了很高的算法速度。在AES算法测试时我们发现80%的AES加解密时间都用于密钥扩展算法中,如果能再进一步把算法优化,比如做成流水线的算法模式的话,加解密时间又能减少近20%,即由现在的6.74us减少到略大于5.39us,效率又可以增加很多。
 
  参考文献:
 
  [1]AES算法FPGA实现分析,唐金艺,[M] 海军计算技术研究所
 
  [2]唐明,张焕国,刘树渡等 AES的高性能硬件设计与研究 [M] 武汉大学计算机学院
 
  [3]赵峰 马迪民 孙伟等 FPGA上的嵌入式设计[M] 2008.4
 
  [4]佟玉伟 陆浪如 FPGA先进加密算法 (AES) 的并行实现 [M] 交通与计算机 2002.6

资讯排行榜

  • 每日排行
  • 每周排行
  • 每月排行

华强资讯微信号

关注方法:
· 使用微信扫一扫二维码
· 搜索微信号:华强微电子