在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 12587|回复: 14

[原创] lx9 试用报告

[复制链接]
发表于 2011-10-15 18:22:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
非常抱歉,拖了这么久,9月初就收到了板子,中间有几个项目赶进度,耽搁了试用,内疚ing


本次试用主要是了解LX9设计情况,并尝试将 LX9构建成一个文件加解密设备,通过串口(原
拟用网口,但因时间关系,选用了较简单的串口)完成文件的加解密:加密时,明文和密钥
由计算机送给LX9,LX9 送密文给计算机;解密时,密文和密钥由计算机送给LX9,LX9将明
文送回电脑。


基于LX9构建文件保密设备.pdf (897.32 KB, 下载次数: 65 )

lx9试用其他文件.rar (582.27 KB, 下载次数: 58 )
发表于 2011-10-16 13:24:18 | 显示全部楼层
不错 呵呵....
 楼主| 发表于 2011-10-16 22:51:57 | 显示全部楼层
各位有LX9板子的可以下载试试,有什么更好的想法可以交流一下呀~
 楼主| 发表于 2011-10-16 23:07:38 | 显示全部楼层
本帖最后由 id1563662788 于 2011-10-16 23:34 编辑

基于LX9构建文件保密系统

因工作较忙,调试时间不是很长,试用报告可能有不够详尽的地方,非常抱歉,也请多多包涵~。

本次试用主要是了解LX9设计情况,并尝试将LX9构建成一个文件加解密设备,通过串口(原拟用网口,但因时间关系,选用了较简单的串口)完成文件的加解密:加密时,明文和密钥由计算机送给LX9,LX9送密文给计算机;解密时,密文和密钥由计算机送给LX9,LX9将明文送回电脑。



为了简单起见,LX9所谓的加解密只准备进行与固定数据0xEE的异或操作,暂不实现密钥的传递过程。

1           结构框图








2           LX9硬件平台准备
这次试用尽量实现已有资源,硬件平台以AVS6LX9MBHP311_XPS_13_2_01为基础进行精简,去除不需要的模块。用XPS打开AVS6LX9MBHP311_XPS_13_2_01工程,查看原始模块,如下图所示。

image006.jpg


1)去除不需要的模块,如Ethernet_MAC,DIP_Switches_4bit,SPI_FLASH,axi_timer_0等,保留LEDs_4Bits作为状态显示备用灯,最终模块结构如下图所示。


image008.jpg





2)修改约束文件,打开system.ucf文件,如下图所示:

image010.jpg
删除其中5~26行、32~37行,53~56行,即删除不用模块的约束信息。





3)生成需要的网表和bit文件。选择HARDWARE菜单,执行clean hardware命令。选择HARDWARE菜单,执行generate netlist命令,xps开始产生网表文件,不过产生过程中出现如下错误:
image012.jpg

在C盘建立TEMP文件夹,重新执行generate netlist命令。漫长的等待。。。。。。后产生netlist完毕,执行hardware菜单generate bitstream命令,继续等待。。。。。。。产生bitstream完毕。
image014.jpg



至此简单的硬件平台准备完毕,选择菜单project,执行export hardware design to SDK,点击export&launch SDK,导出硬件信息,开始进行软件设计。

3           LX9软件设计
Xps sdk软件初始界面如图所示。

image016.jpg
选择菜单file—new—Xilinx C project,建立新的软件工程,设置如下图所示。
image018.jpg

点击finish,建立软件工程。

注意上面使用Hello world 模板,可以方便测试整个平台是否正常工作。

设置串口调试助手,如下图所示。

image020.jpg
端口号的选择在设备管理器里面查看Silinon Labs CP210X USB TO UART Bridge对应的数字,波特率与XPS 中 USB_UART中的设置对应。
image022.jpg
image024.jpg






执行generate linker script,方法如下图。
image026.jpg

具体设置如图所示,设置完成后点击generate即可。
image028.jpg



执行xilinx tools 菜单下Program FPGA 命令,设置如下所示。

image030.jpg


FPGA编程完成后,内部程序自动执行,串口调试助手显示出hello world,说明平台工作正常。
image032.jpg



修改helloworld.c,使其满足设计要求。修改过程简述如下:

加入引用头文件:

#include "xparameters.h"

#include "xuartlite.h"

#include "xgpio.h"

定义变量:

    XUartLite ptrUart;

    u8 ibuff[10];

    u8 obuff[10];

    XGpio ptrGpio;

    u32 loop_cnt;



init_platform()下一行加入如下程序语句:

    XUartLite_Initialize(&ptrUart,  XPAR_USB_UART_DEVICE_ID);

    XUartLite_ResetFifos(&ptrUart);

    XGpio_Initialize(&ptrGpio,XPAR_LEDS_4BITS_DEVICE_ID);

    XGpio_SetDataDirection (&ptrGpio,1,0);

    loop_cnt = 0;

    while(1)

    {

        loop_cnt ++ ;

        loop_cnt = loop_cnt%0x3FFFF;

        if(XUartLite_Recv(&ptrUart,ibuff,1)==1)

        {

           obuff[0] = ibuff[0] ^ 0xee;

           XUartLite_Send(&ptrUart,obuff,1);

        }



        if(loop_cnt>0x20000)

        {

           XGpio_DiscreteClear(&ptrGpio,1,0x1);

        }else{

           XGpio_DiscreteSet(&ptrGpio,1,0x1);

        }

}



修改完成后保存文件,xps SDK自动编译。



右键点击encrypt项目,修改编译配置为release版本,如下图所示。重新编译,生成release版本的encrypt.elf程序。
image034.jpg



4           LX9固件程序生成及FLASH编程
回到XPS界面,将生成的release/encrypt.elf加入project,如下图所示。


image036.jpg

image038.jpg

image040.jpg



选择菜单device configuration,执行命令update bitstream,生成download.bit文件,该文件为合并了硬件平台信息和block ram软件信息的文件。



将download.bit写入spi_flash中,具体过程见

U70_Avnet_Spartan-6_LX9_MicroBoard_Configuration_Guide_v1_3。

5           计算机软件设计
计算机程序暂时设计得比较简单,就是一个简要的串口收发程序,软件界面如下所示。

image042.jpg

其中第一个选择按钮为选择输入文件:加密时为明文文件,解密时为密文文件,该文件选择后,输出路径和输出文件为自动设置;第二个选择按钮设置输出文件及路径,可以不进行设置使用默认值。



因为软件比较简单,这里不做详细说明。

6           测试及结果
用ultraedit产生一个全F文件(文件名f.bin)进行测试。下图为f.bin文件内容。

image044.jpg

下图为计算机软件设置。
image046.jpg


下图为输出的f_out.bin内容。
image048.jpg


下图为解密设置。
image050.jpg


下图为解密后禅师的f_out_out.bin文件内容。
image052.jpg


可见,可以完成预定的功能。



下面测试一个文本文件,文件名为t.txt,内容如下:
image054.jpg


仍然以二进制形式查看,如下所示:
明文:
image056.jpg



密文:
image058.jpg



解密后:
image060.jpg



很奇怪,解密后二进制对照正确,但二进制后面文本不对,不过以文本形式查看还是正确的,如下:
image062.jpg






下面,对一个图片加密,文件名image.jpg,图片如下所示。
image063.jpg


这里,直接进行加密和解密,然后使用ultraedit进行二进制对比,如下所示:
image066.jpg


对比结果虽然正确,但是这次加/解密也充分体现了串口的慢速,136K的文件,加密和解密总共用时约7分钟,可见速度之慢(如下图,通过解密后文件与加密后文件的创建时间,可以大致推出加密和解密时间)。

image068.jpg



7           试用结论及感触
本次试用,因为和工作有冲突,测试不是很全面,感觉有些遗憾。另外也耽搁了时间,非常抱歉。

就技术方面来说,本次试用设计的这个东西还有不完善的地方,个人认为主要有:

1、  结构不是最好的。就LX9而言,如果要实现本文的功能,最好还是用网口,速度快,可以满足大文件加密要求。

2、  算法比较简单。如果时间允许,将aes或者其他公开算法或者个人设计的算法放进去,对个人文件进行加密,才能更安全的保密个人信息。

3、  本文开头提出的认证过程没有实际实现,这样每个人都可以用LX9进行加/解密,达不到安全保密的目的。



最后,非常感谢avnet提供这次机会给我试用LX9,LX9是个个头小巧功能也挺强大的板子,对进行原型设计很有参考价值。



提交试用报告的同时,同时提交了FLASH数据文件download.mcs,计算机软件程序RS232.EXE和几个测试文件,有兴趣的可以自己试验一下。
发表于 2011-10-16 23:34:42 | 显示全部楼层
请发到
http://xilinx.eetop.cn/category-35
点击 在线投稿 用你的注册ID随便发布一下
由于图片不太好发,所以请把word文件发给我,我在你的基础上修改。
 楼主| 发表于 2011-10-16 23:36:16 | 显示全部楼层
本帖最后由 id1563662788 于 2011-10-16 23:39 编辑




    原来这样,哎,我都搞半天了,还是不很完美~

怎么把word发给你呢?
把邮箱message给我,我发给你啊,呵呵
发表于 2011-12-1 18:04:51 | 显示全部楼层
回复 3# id1563662788


    好东西
发表于 2011-12-2 15:13:16 | 显示全部楼层
很好很强大,继续学习ing
发表于 2011-12-16 12:47:20 | 显示全部楼层
赶紧学习了
发表于 2012-2-27 18:02:43 | 显示全部楼层
下来研究研究,谢谢楼主
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 14:38 , Processed in 0.032999 second(s), 12 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表