您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于FPGA的片上系统的无线保密通信终端
需求目标系统架构设计方案代价评估无线通信金融保密GPS导航手机通信无线上网军事应用其他本设计使用硬件描述语言在FPGA数字逻辑层面上实现AES加解密,为了系统的扩展性和构建良好的人机交互,设计通过PS/2键盘输入加密密钥,并将其显示在LCD上。在软核MicroBlaze上,通过SPI总线读写FIFO和RAM控制射频芯片CC2420,使系统具有信道选择、地址识别、自动CRC校验功能,使系统更加安全、通信误码率更低。MicroBlazePS/2LCDCC2420无线通信系统终端的分解图MicroBlazeEncryptionDisplayOutputPasswordEncryptedDocumentPS/2键盘输入keyCC2420无线通信系统终端的实现视图无线通信系统终端PS/2输入密钥用verilog硬件描述语言编写加密文件keyin.v输入到MicroBlaze中MicroBlazeSection.v对明文分段EnCrypt.v调用加密文件对明文加密Decipher.v解密ACK.v发送校验位ACK/NOACKLCDDisplay.v显示密钥CC2420Sen.v发送数据Rec.v接收数据无线通信系统终端的类图在本系统中采用TI公司的CC2420来实现数据的无线通信CC2420工作于免授权的2.4GHz频段,33个16位配置寄存器、15个命令选通寄存器、1个128字节的RXRAM、1个128字节的TXRAM、1个112字节的安全信息存储器。TX和RXRAM的存取可通过地址或者用两个8位的寄存器。主机可通过SPI总线设置其工作在Normal模式,通过SPI总线,MISO接口对TXFIFO和RXFIFO及状态进行写和读的操作,将数据写入和读出RAM来实现与CC2420的数据传输,通过触发CC2420STXON,SRXON来实现数据的无线发送和接收。MicroBlaze软核的执行视图系统初始化是否接收到数据是否有数据进入调用AES加密模块进行加密添加CRC校验数据打包发送并计时和等待ACK是否时间到或没有收到ACK或收到NOACK重新发送进行地址识别如果不正确丢弃该包正确则解包提取数据进行CRC校验是否正确发送NOACK进行AES加密数据提取Microblaze的控制流程主程序main(){Initial()//初始化系统;CmdSend()//上位机命令输入;DataRev()//数据接收;AESEny()//数据加密;DataPackage()数据打包;CC2420Sen()加密数据发送;Returnsuccess;}系统的执行视图AES加解密算法(Rijndael算法)对待加密的明文先进行分段然后加密,明文的长度可以是l28位、192位或256位。同样,用于加密的密钥长度也有l28位、192位或256位。根据明文及密钥长度不同的组合,加密的轮次有10轮、12轮和l4轮。在圈函数的每一圈迭代中,包括4步变换,分别是字节代换运算、行变换、列混合以及圈密钥的加法变换。本系统设计中使用128位明文和128位密文的组合。字节代换运算行变换列混合密钥扩展字节代换模块此模块为AES中的每一个字节提供了一个非线性代换。任一非零字节被函数所代替。如果x是零字节,y=b就是SubBytes变化的结果。在本设计中,为了加快算法速度,将S盒预先写入RAM中,直接用地址来指示替代的字节,利用空间来换时间,达到了加快用算的目的。密钥扩展模块本设计采用了XilinxIP核SingleBlockRAM位宽32,深度64,在程序的开始,由用户设置的初始密钥系统按照密钥扩展算法生成的10轮扩展密钥,将生成的密钥按照地址次序从低到高放入RAM中,在每一轮执行addroundkey时取出对应轮数的密钥,与明文相加(异或)。第一段明文第二段明文第三段明文加密开发方法:在FPGA上使用VerilogHDL语言进行开发开发环境:硬件:XilinxXUPV5-LX110TEvaluationPlatform,无线模块软件:ISE,ModelSim,Synplify测试方案:在发送端通过无线模块发送经过加密的信息,接收端解密并显示明文。硬件成本加密时间硬件资源占用率人力投入加密时间AES加密占用FPGA资源统计表
本文标题:基于FPGA的片上系统的无线保密通信终端
链接地址:https://www.777doc.com/doc-3143577 .html