塑胶五金网 产品 会员
6DS1202-8AB

6DS1202-8AB

发布时间:2019-01-05 14:24:32点击率:

所属行业:五金工业品-> 电子电工-> 配电装置、开关柜、照明箱
价格:¥66
规格:6DS1202-8AB
供货总量:666

6DS1202-8AB

6DS1202-8AB

6DS1202-8AB 

驱动程序设计

本方案涉及3种驱动程序B驱动程序、文件系统驱动程序和FPGA驱动程序。

Linux系统有丰富完善B设备和文件系统支持。本方案使用Linux系统中自带B Mass Storage驱动程序和文件系统驱动程序,自行编写FPGA驱动程序。FPGA驱动程序基于Linux系统字符设备驱动程序模型进行编写。FPGA驱动程序的主要函数有初始化函数init()、写入中断服务函数write_int()、写入函数write()。

初始化函数init()首先将FPGA异步RAM对应的硬件地址0x10000000~0x10001002映射为Linux系统中的内存虚拟地址A到A+4098(设映射的内存虚拟地址起始为A),实现在Linux系统中直接向异步RAM写入数据。然后,设置指令线、响应线所对应的寄存器。将指令线的方向设置为输出,并输出低电平;响应线的方向设置为中断输入。 ,函数将响应线中断服务函数设置为write_int()。

写入函数write()与写入中断服务函数write_int()配合,完成一次数据传输:

①当应用程序调用写入函数后,函数首先设置指令线为高电平指示FPGA准备传输数据,然后将驱动程序置于休眠状态,等待唤醒。

②FPGA收到指令后判断现在能否传输数据,如果能,则在中断线上发送一个上升沿。ARM处理器捕捉到该上升沿后,调用write_int(),唤醒驱动程序。

③驱动程序被唤醒后,继续执行write()。write()函数首先根据应用程序提供的参数生成帧头,并将帧头写入地址ADDR和ADDR+1,完成帧头的传输。随后将数据写入地址ADDR+2及其后的地址,完成数据的传输。

6DS1202-8AB

运行应用程序时,通过设置参数能使应用程序读取U盘、移动硬盘甚至网络上的文件,使方案具有很高的灵活性。应用程序使用了多线程技术来充分利用系统资源,使用两个线程分别实现从U盘读取数据存入缓冲区的过程和将缓冲区内的数据传输至FPGA的过程。在读取线程或写入线程中,可以加入数据处理代码实现数据的预处理,减少FPGA工作量。应用程序分配了多个缓冲区提高性能,并使用了互斥锁实现读取线程与传输线程间的线程同步,确保数据正确传输。

1.4 ARM向FPGA传输数据设计

本方案在FPGA中实现一个异步RAM,其使用乒乓机制接收来自ARM处理器的数据,同时需要将异步RAM中的数据写入DDR 2存储器。异步RAM内部有两个数据缓冲模块。在乒乓机制中,两个模块分别执行不同的任务,当模块1接收数据来自ARM处理器的数据时,模块2将数据写入DDR 2存储器。当两个模块的任务都完成后,交换模块1和模块2的任务。与现有方案相比,本方案FPGA无需配置外部芯片,所需开发量较小。

2 测试与分析

2.1 传输速率测试

此测试传输3个不同大小的文件,记录数据传输时间,从而获得数据传输速率。

测试结果如表1所列。

联系方式
姓名:  欧工
部门:  销售部
职位:  销售
电话:  
手机:  
  
地址:  福建厦门市厦门市思明区嘉禾路293号宝达大厦1003室
点此询盘
返 回

上一个:CV-5001P
免责声明:以上所展示的信息由企业自行提供,内容的真实性、准确性和合法性由发布企业负责,塑胶五金网对此不承担任何保证责任

塑胶五金网-wap版