• 全国 [切换]
  • 深圳市鼎达信装备有限公司

    扫一扫关注

    当前位置: 首页 » 新闻动态 » 真空技术 » 正文

    基于ARM的光耦单项数据传输设备实验设计

    放大字体  缩小字体 发布日期:2021-10-25 08:33:51    浏览次数:44    评论:0
    导读

    摘要:针对ARM是目前市场主流的嵌入式系统处理器,具备低电压、低功耗和高集成度等特点,且具有很强的开放性与可扩展性,对于学生学习嵌入式系统课程具有非常好的指导性与代表性,以光电耦合器这种特殊的信号传输元件为基础,设计一种数据物理单项导入设备实验,提高学生嵌入式系统的硬件设计与开发能力。本设计方案主要实

    摘要:针对ARM是目前市场主流的嵌入式系统处理器,具备低电压、低功耗和高集成度等特点,且具有很强的开放性与可扩展性,对于学生学习嵌入式系统课程具有非常好的指导性与代表性,以光电耦合器这种特殊的信号传输元件为基础,设计一种数据物理单项导入设备实验,提高学生嵌入式系统的硬件设计与开发能力。本设计方案主要实现的是U盘文件单向导入功能,将从U盘中文件单向导入到PC机中指定的目录下,在底层的硬件数据传输过程中,创新性的加入了光电耦合器件,从硬件层面保证了数据传输的单向性和不可逆性;同时在USB主机控制芯片上实现了U盘文件的只读控制。该方案能从软件层面和硬件层面保障PC机内部的信息安全。

    关键词:ARM开发;光耦合;单项导入

    随着计算机技术的高速发展,嵌入式系统被广泛应用于工程、科研及日常生活等各个方面,成为目前国内高校的教学重点[1]。ARM是目前市场主流的嵌入式系统处理器,具备低电压、低功耗和高集成度等特点[2],而且具有很强的开放性与可扩展性,对于学生学习嵌入式系统课程具有非常好的指导性与代表性[3-4]。而本文光电耦合器这种特殊的信号传输元件为基础,设计一种数据物理单项导入设备实验,以提高学生嵌入式系统的硬件设计与开发能力。本实验根据实际教学需求,使用keil、SAM-BA、Visual C++6.0,针对制作完成的ARM开发板进行开发。

    1 基于光耦的单向导入

    1.1 系统总体设计方案

    本设计方案主要实现的是U盘文件单向导入功能。将从U盘中文件单向导入到PC机中指定的目录下。在底层的硬件数据传输过程中,创新性的加入了光电耦合器件,从硬件层面保证了数据传输的单向性和不可逆性;同时在USB主机控制芯片上实现了U盘文件的只读控制。因而,该方案从软件层面和硬件层面保障PC机内部的信息安全。

    导入系统采用ARM作为主控器件,控制CH375芯片对U盘的读写操作,从CH375输出的数据,通过光耦后,直接到CY7C68013A的FIFO中,最后通过CY7C68013A芯片实现与PC机之间数据传输,通过PC机上的应用程序保存U盘中的文件。系统结构框图见图1。

    图1 系统结构框图

    1.2 硬件逻辑结构

    下面对系统的工作流程进行详细的描述。U盘插入到单向导入系统,系统自动检测到U盘;用户通过PC机的客户端应用程序运行导入文件的控件,开始进行U盘的单向导入;单向导入设备的从机通过USB2.0总线得到PC机发出的指令,通过解析后,触发CY7C68013A的某一输出口,使得导入设备的主控器ARM开始工作;主控制ARM与CH375发生通信,配置相关接口,读取U盘文件系统的基本信息,为随后的文件传输做准备;当CH375在ARM主控器的控制下,扫描到需要传输的文件,则放入传输队列,开始传输文件;从CH375出来的文件数据流通过光电耦合器后,发送到CY7C68013的FIFO端,最终上传到PC端,通过PC端的用户应用程序解析文件数据流,然后保存文件到指定的目录下;反复进行这个过程,直到整个U盘的文件传输完毕。

    单向导入器硬件逻辑结构如图2所示。

    图2 硬件逻辑结构图

    1.3 硬件选型

    按照前面的设计方案,选了以下设备作为本文的核心器件。本文将在随后对每个器件进行简单的说明,见表1。

    表1 芯片选型表

    1.3.1 USB设备主机控制芯片

    本文CH375作为USB主机控制芯片,用来识别和读写U盘,见图3。

    图3 CH375结构图

    CH375 是一个USB总线的通用接口芯片,支持USB-HOST主机方式。在本地端,CH375 具有8 位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到ARM主控制器的系统总线上。CH375 的USB主机方式支持常用的USB全速设备,外部单片机可以通过CH375按照相应的USB 协议与USB 设备通讯。

    CH375 还内置了处理Mass-Storage 海量存储设备的专用通讯协议的固件,外部单片机可以直接以扇区为基本单位读写常用的USB 存储设备(包括USB 硬盘/USB 闪存盘/U 盘)。

    1.3.2 USB设备从机控制芯片

    本设计方案选用的是CY7C68013A,它广泛用于数据采集、医疗设备之中。

    它集成了USB 2.0和USB 1.0的通信协议,支持12 Mb/s的全速传输模式和480 Mb/s 高速传输模式。CY7C68013A的特点:①可以通过外部EEPROM装载固件程序;②工作电压为3.3 V,低功耗;③支持并行8位或16总线传输;④可设置为主从模式;⑤4个集成FIFO可以直接与外设实现“胶连接”。

    CY7C68013A逻辑结构框图如图4所示。

    图4 CY7C68013A逻辑结构框图

    1.3.3 固件存储器

    本电路选用24LC64,其功能是存储USB的固件程序。CY7C68013采用“C2加载”模式,使得系统上电后, EEPROM中存储的USB固件程序加载到CY7C68013中的增强型8051的RAM中运行,完成USB从接接口的出发ARM主控器工作和数据传输功能。

    24LC64是一款具有 总线接口的串行EEPROM,最大的存储容量为64KB,可以重复擦写100万次,数据可以掉电保存100年。

    1.3.4 单向导入器主控器

    本设计方案选用ARM7作为USB主机接口芯片的主控器。实现U盘的读写控制。

    ARM处理器是世界上最流行的嵌入式处理器,广泛应用于个人通信等嵌入式领域。AT91SAM7S64是Atmel 32位ARM RISC 处理器小引脚数Flash微处理器家族的一员。它拥有64K字节的高速Flash和16K字节的SRAM,丰富的外设资源,包括一个USB 2.0设备,使外部器件数目减至最低的完整系统功能集。这个芯片比以往的8位处理器拥有更加强大的处理能力和更大的存储器。

    1.3.5 光电耦合器件

    本设计方案选用的是双通道的高速光耦期间HCPL-2630器件。实现了信号的单向传输,且传输速率能达到10 Mbit/s,基本满足了设计的要求(由于受到光耦合器自身传输速率影响,最后产品的理想传输速率为1 MB/s)。

    光电耦合器以光为媒介传输电信号。光电耦合器一般由三部分组成:光的发射、光的接收及信号放大。输入的电信号驱动发光二极管(LED),使之发出一定波长的光,被光探测器接收而产生光电流,再经过进一步放大后输出。这就完成了电—光—电的转换,从而起到输入、输出、隔离的作用。

    光耦合器的主要优点是:信号单向传输,输 入端与输出端完全实现了电气隔离,输出信号对输入端无影响,抗干扰能力强,工作稳定,无触点,使用寿命长,传输效率高。

    1.4 系统功能

    本系统主要包括6个功能模块:主机USB接口功能、文件传输功能、缓存管理功能、光耦控制功能、从机USB接口功能、PC机文件接收功能。

    软件功能组成如图5。

    图5 系统管理软件功能模块

    1.4.1 主机USB接口功能

    USB主机接口模块是直接与U盘打交道的一个模块,是实现U盘识别与配置,U盘文件读写控制的重要模块。

    1)U盘识别与初始化。这个模块实现识别和初始化U盘设备。当U盘插入到导入器时,该模块会根据USB总线上电压跳变情况,自动检测到U盘设备;当检测到U盘之后,对U盘设备进行初始化和配置相关的参数。

    2)U盘文件目录获取。由于CH375内置了处理Mass-Storage海量存储设备的专用通信协议的固件,所以ARM主控器可以通过CH375将U盘作为可移动的大容量存储器。常常U盘都是以FAT32的文件系统来存储数据。所以,ARM控制系统需要直接读取U盘中的文件系统,可以直接调用CH375文件级子程序库提供的接口API,由子程序库处理文件系统。获取到U盘文件目录后,保存到一个队列,然后按照这个队列进行传输。

    1.4.2 文件传输功能

    1)文件传输管理。因为CH375提供了U盘文件级子程序库,ARM主控器可以直接调用子程序读写U盘中的文件数据。CH375的U盘文件级子程序库支持常用的FAT32文件系统。ARM控制系统不需要考虑文件系统,只需要了解文件名、文件长度等基础信息。因为,U盘中所有文件都是一组数据的集合,以文件名区分和识别。

    ARM主控器需要从U盘的FAT开始读取根目录中的信息,从而获取U盘所有文件的文件名、文件长度等信息。然后将U盘中所有文件的基本信息放入传输队列进行等待传输。

    2)文件自动推送。文件自动推送,是将文件队列中的文件依次推送到8位并行数据总线上。本设计的文件自动推送过程具体如下。在FAT32文件系统中,一个文件可以由若干个簇组成,这些簇的链表存储在U盘的FAT区中;一个簇有8个扇区组成。当读取一个文件时,找到该文件的首簇地址,进入该簇并读取簇内的8个扇区的内容;当读完一个扇区,判断是否这个簇的所有扇区都读完了,否则返回继续读下一个扇区;当簇的所有扇区都读完之后,判断该文件是否还有下一个簇要读取,如果有继续读取下一个簇的内容;如果文件的所有簇都读取完了,就进入下一个文件的自动推送,直到所有文件都传输完毕。文件传输模块的流程图如图6所示。

    图6 CH375文件传输流程图

    1.4.3 缓存管理功能

    本设计中,缓存管理模块主要有两个作用。

    1)将CH375输出的8位数据总线上的数据与命令分开,实现文件数据的正确传输。CH375的数据和命令都是通过这个8位数据总线传输的。USB主机接口芯片CH375,当A0=1时可以写命令,当A0=0时可以读写数据;我们将CH375的A0口与锁存器连接,可以实现数据与命令的分离。

    2)保证8位总线上的传输的速率与光耦控制模块的工作频率相当。数据传输过程中,如果总线上传输数据的速率超过了光电耦合器件最大的工作频率,那么部分数据就会丢失,会给整个系统造成了误差,甚至传输的数据根本不能使用。加入了缓存器之后,我们可以根据光耦的平均传输速率。

    1.4.4 光耦控制功能

    光耦控制功能的硬件是采用多片光耦并行传输来实现数据电气隔离,数据不能反向传输。光耦控制功能主要是实现多个光耦之间并行传输与时序控制。

    光耦一般由三部分组成:光的发射、光的接收及信号放大。输入的电信号驱动发光二极管(LED),使之发出一定波长的光,被光探测器接收而产生光电流,再经过进一步放大后输出。这就完成了电—光—电的转换,从而起到输入、输出、隔离的作用。

    光电隔离的典型电路如图7所示。

    图7 光电隔离的典型电路

    1.4.5 从机USB接口功能

    1)USB设备初始化。这里USB设备的初始化与前面的主机USB初始化有很大的不同。前面的USB设备初始化,主要是针对U盘的配置。

    在这里,主要完成的是,当单向导入设备上电的时候,USB设备自动完成设备的枚举,从EEPROM下载程序到USB设备的ram中运行,满足客户独特的需求。同时,在PC机的设备管理器里,我们会发现新的USB设备,进行驱动的安装之后,我们开发的单向导入设备才可以正常的工作。

    2)USB传输模块。当8位数据总线通过光耦之后,CY7C68013在SLWR信号的驱动之下,将总线上的数据传输到CY7C68013A的FIFO,当FIFO中的数据达到512 K时,自动将其打包送到PC机的USB2.0总线上,实现了PC机与单向导入器之间的数据传输功能。CY7C68013A中的FIFO模块中有4片相同的FIFO,当FIFO满的时候,则将数据打包上传,上传完之后,由进入下队列等待下面的数据传输,实现了数据传输的无缝胶合。

    1.4.6 PC机文件接收功能

    PC机文件接收模块,也是本设计的核心内容之一。它完成的包括以下内容:启动USB设备、检测USB设备、配置USB设备、启动文件传输、判断文件是否传输完、判断目录是否传输完、保存文件、推出系统。

    在这个模块中,判断一个文件是否传输完成、判断U盘中所有文件是否都传输完成是需要对USB总线上传的数据进行分析。如果查询得到文件尾部的标记,则完成了这个文件的传输,同时保存文件,进行下一个文件的传输或者传输结束,关闭设备。文件的保存也需要对FAT32文件格式有深入的了解。通过相关函数,把文件保存到用户指定的区域中。整个PC机文件接收模块的流程如图8所示。

    图8 PC机文件接收模块

    2 ARM控制系统的程序开发

    2.1 ARM控制系统程序开发

    主要是开发ARM的控制程序,分别对USB主机接口芯片进行控制,机U盘文件级操作,同时完成文件的传输过程。

    开发工具:ADS1.2。ADS(ARM Developer Suite),是在1993年由Metrowerks公司开发是ARM处理器下最主要的开发工具。ADS 是全套的实时开发软件工具,包编译器生成的代码密度和执行速度优异。可快速低价地创建ARM 结构应用。

    2.2 USB从机固件程序和驱动程序的开发

    本文采用Cypress公司EZ-USB Fx2系列芯片CY7C68013A,USB部分的软件设计主要包括CY7C68013A的固件程序设计与USB驱动程序的设计。

    USB固件程序通过EZ-USB控制面板软件下载到EEPROM中。当USB设备上电时,固件程序加载到CY7C68013A的RAM中运行,完成设备的初始化以及相关特殊功能寄存器的配置。

    USB驱动程序是连接采集设备与计算机的桥梁。USB驱动程序负责硬件与Windows操作系统打交道,安装USB驱动程序之后,Windows系统识别USB设备,用户应用程序采集USB总线上的数据。

    开发工具:Keil uVision3。

    2.3 PC机客户端应用程序的开发

    用户应用程序是基于Visual C++ 6.0平台开发的。Visual C++ 6.0是微软公司推出的一个基于Windows系统平台集成开发环境。Visual C++ 6.0是一个功能强大的可视化软件开发工具。Visual C++6.0包含有编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。基于光耦的单向导入。

    3 专用USB存储介质认证电路设计

    为了提高专用USB存储介质使用的安全性,本项目将采用专用USB存储介质与导入器之间通过逻辑电路认证来实现USB存储介质的硬件认证。通过采用该认证电路后,可以保证USB存储介质具有以下安全特性:①保证专用USB存储介质接入到导入器以外的任何设备,都无法激活存储区,无法工作。②保证专用USB存储介质无法回避认证电路进行设备直连。

    如图9所示,整个认证电路分为两大部分:一个是认证信号发生器,另一个是认证逻辑电路。

    3.1 认证信号发生器

    认证信号发生器是放置在导入器中的一个认证电平信号发生器,当有专用USB存储介质接入导入器后,其USB口线中的一个专用认证线与导入器中的认证信号发生器连接,电路连通,认证信号发生器被激活,并发送一个认证电平(高电平或者低电平)。

    3.2 认证逻辑电路

    认证逻辑电路放置于专用USB存储介质中,当导入器中发出认证信号后,认证信号Q在USB接口后端被转换为两个反相信号与,然后将与信号分别与来自于ARM控制器中对RAM的控制信号进行逻辑运算,保证逻辑运算后输出正确的控制信号给RAM。当没有认证信号到来时,ARM控制器信号经过逻辑运算后将给出错误的控制信号,RAM将不工作。

    图9 认证电路原理图

    4 结 语

    《嵌入式系统》教学需要改革,使其能够提高学生的动手能力与设计能力,让学生能够通过实践操作熟练掌握ARM嵌入式系统的开发方法,提高学生的创新能力与综合素质。


     
    (文/小编)
    打赏
    免责声明
    • 
    本文为小编原创作品,作者: 小编。欢迎转载,转载请注明原文出处:https://www.dingdx.com/news/202110/25/732.html 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。
    0相关评论
     

    © Copyright 深圳市鼎达信装备有限公司 版权所有 2015-2022. All Rights Reserved.
    声明:本站内容仅供参考,具体参数请咨询我们工程师!鼎达信作为创新真空产品研发制造商,我们提供海绵吸具,海绵吸盘,真空吸盘,真空发生器,真空泵,真空鼓风机,缓冲支杆,真空配件,真空吊具等等产品

    粤ICP备17119653号