热线电话:

厦门莫格电气自动化有限公司

主营:PLC可编程控制器模块,DCS卡件,ES...

商铺首页 > 新闻动态 > TC-FXX072
厦门莫格电气自动化有限公司
8
企业等级: 普通会员
经营模式:
所在地区: 福建 厦门
联系卖家:    QQ在线咨询1982497648
手机号码:
公司官网:
公司地址:

TC-FXX072

发布时间:2019-08-28 03:56:11        

TC-FXX072  Honeywell

   技术发展到今天的信息时代,数据的存储和传输在嵌入式系统有了越来越重要的地位。而USB是目前设计成熟、应用广泛且使用极为简捷的技术,USB传输是一种***方便的数据传输方式。基于上述原因,本文***论述基于USB的海量存储(USBMassStorage)设备功能在ARM嵌入式系统中设计和应用。使用该设备功能,上位机可以像读写普通U盘一样对于系统采集并存储在FLASH中的数据进行读写。
    1硬件方案
    l.1器件简介
    S3***4B0X[1]是SAMSUNG公司出品的基于ARM7TDMI内核的RISC型微处理器,8kB指令和数据共享的缓存,主频可达66MHz,可以运行16位的Thumb指令和32位的ARM指令,且接口丰富,具有通用性。
    &nbs
    p;K9F2808U0C[2]是SAMSUNG公司生产的一款Nand型闪存芯片,容量为16MB,读写速度快,数据保存时间长,可擦写10万次,在嵌入式系统中有着广泛的应用,主要是负责数据存储。
    PDIUSBDl2[3]是PHILIPS公司生产的带有并行总线和局部DMA传输能力的全速USB接口芯片,符合USB1.1版规范,可以与任何外部MCU/MPU实现并行接口,传输速度可达2MB/s。该USB芯片有1个控制端点和2个普通端点。
    1.2硬件连接图
    硬件连接如图1所示。在该系统中,FLASH芯片K9F2808U0C负责嵌入式系统中的数据存储;处理器S3***4B0X执行底层固件代码;USB接口芯片PDIUS-BDl2负责设备与上位机的通讯。这样系统采集并存储在闪存芯片中的数据便可以通过USB接口传输到上位机。
    海量存储设备硬件连接图
    2软件实现
    要实现实验系统与上位机的USB通讯,首先要正确设计PDIUSBD12的底层固件程序。而要实现系统的海量存储设备功能,还要有FLASH的读写操作代码和实现海量存储设备类规范的代码。下面从这3个方面来分析。软件开发环境为ARM公司的ADS1.2,USB监控和测试软件为BUSHound。
    2.1PDIUSBD12固件编程
    PDIUSBDl2固件结构和数据流向如图2所示。结构图中的硬件提取层是固件中的***底层代码,负责对处理器与PDIUSBDl2相连接的I/O口进行操作,以通知PDI-USBD12接下来处理器将对其进行命令操作或是数据操作。而命令接口层是基于硬件提取层的一套对PDIUS-BDl2进行操作的子程序,可以方便上层程序的编写。
    固件结构和数据流
    当PDIUSBD12向处理器发出中断请求时,处理器读取中断寄存器,根据中断源调用相应的中断服务处理程序,中断服务处理程序设置相应的事件标志,如果有数据传输并作相应的数据处理。根据USB协议[4],控制端点0用来负责设备的枚举,如获取设备各种描述符、设置地址、获取海量存储设备的逻辑单元数目和复位设备等操作。这些操作是通过中断和主循环共同完成的。这里端点1未用到,可以忽略其中断。端点2是主端点,用作Bulk-Only传输。在端点2的中断处理程序中实现Bulk-Only传输及命令解析和执行。
    其中,中断服务处理程序与主循环通过一个名为ControlData的结构体变量进行通讯。主循环初始化I/O口、事件标志bUSBFlags、建立包数据缓冲区、定时器和中断,重新连接USB总线后进入一个无限循环,当该循环轮询到某事件标志被置位时便进行相应的处理。特别是在设备枚举中当建立标志被置位时,根据设备请求的类型域ControlData,DeviceRequest,bmRequestType来确定是标准设备请求、厂商设备请求还是类型设备请求,再根据请求类
    型进行相应的调用。
    2.2K9F2808U0C读写操作
    K9F2808U0C共有1024块,每块32页,每页528B,其中512B用于存放数据,另外16B用于存放信息,如块的好坏标记、块逻辑地址和ECC校验和等。FLASH读写有其自身的特点,读写都以页为单位,可以随机读,但无法随机写,写操作前必须把写单元所在的块擦除。因此,对于该闪存的读操作可以采取直接读取来处理;而对于写操作,则通过设置块缓冲来解决,以减轻系统的任务和对FLASH的擦除次数。写操作的基本思想是:设置一个块缓冲区,待写数据先写入缓冲区对应的页地址,当缓冲区中待写数据的页地址到达31或者页地址未满31但传输已经结束时,先将目标块中待写页以外的有关数据保存到缓冲区对应的页地址,然后擦除整块,***后将缓冲区的数据拷贝到该块。写操作流程如图3所示。
    写操作流程
    2.3海量存储规范实现
    ;海量存储设备必须符合海量存储设备类规范,该规范包括4个***的子类规范,本设计中用到其中的2个子类规范:一是USBMassStorageClassBulk-OnlyTransport规范[5];二是USBMassStorageClassUFICommand规范。前者定义了数据/命令/状态在USB总线上的传输方法,Bulk-Only传输规范仅仅使用Bulk端点传送数据/命令/状态。后者定义了对存储介质的操作命令,UFI命令规范基于SCSI-2和SFF-8070i命令集。这里根据SCSI-2规范[6]针对该类设备的操作命令规范,总共编写了9个命令执行函数,见下文。
    海量存储规范的实现有2个地方要注意:一是设备描述符、配置描述符、接口描述符和端点描述符要正确设置,主机是通过控制端点(端点0)获取这一些描述符的;二是BULK端点(端点2)的中断处理,其中的BULKOUT中断处理较BULKIN复杂,由于篇幅所限,下面只讨论BULKOUT的中断处理。
    BULKOUT的中断处理要对主机发送的CBW(Com-mandBlockWrapper)和数据进行解析和处理。伪代码结构如下:
    BULKOUT的中断处理要对主机发送的CBW(Com-mandBlockWrapper)和数据进行解析和处理。伪代码结构
    其中pSCSI是传递给读写函数的有关读写地址和数据传输长度等参数的结构体。数据的处理在读写函数中进行。Write()函数的流程如图3。读函数以页为单位,一次可以读取连续的若干页,在此不再列出其流程图。其他函数可根据SCSI-2命令规范来编写。
    3结语
    经测试,通过USB总线主机能够稳定的读写设备中的FLASH,读数据的速度可达600kB/s,写数据的速度可达400kB/s。该设备功能使用方便,性能稳定,已在具体项目中有实际应用,根据硬件情况稍做修改便可以应用到其他嵌入式系统中。
进入变频器内部。
免责声明
• 本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 304108043@qq.com
  • QQ在线咨询1982497648
  • 手机:
  • 联系我时务必告知是在产品网上看到的!

厦门莫格电气自动化有限公司

商铺|诚信档案

地址:

电话:传真:

免责声明:以上信息由会员自行提供,内容的真实性、准确性和合法性由发布会员负责,产品网对此不承担任何责任。产品网不涉及用户间因交易而产生的法律关系及法律纠纷, 纠纷由您自行协商解决。

风险提醒:本网站仅作为用户寻找交易对象,就货物和服务的交易进行协商,以及获取各类与贸易相关的服务信息的平台。为避免产生购买风险,建议您在购买相关产品前务必 确认供应商资质及产品质量。过低的价格、夸张的描述、私人银行账户等都有可能是虚假信息,请采购商谨慎对待,谨防欺诈,对于任何付款行为请您慎重抉择!如您遇到欺诈 等不诚信行为,请您立即与产品网联系,如查证属实,产品网会对该企业商铺做注销处理,但产品网不对您因此造成的损失承担责任!

联系:304108043@qq.com是处理侵权投诉的专用邮箱,在您的合法权益受到侵害时,欢迎您向该邮箱发送邮件,我们会在3个工作日内给您答复,感谢您对我们的关注与支持!

商铺首页 | 公司概况 | 供应信息 | 新闻动态 | 诚信档案 | 联系我们 |

厦门莫格电气自动化有限公司 电话: 传真: 联系人:

地址: 主营产品:PLC可编程控制器模块,DCS卡件,ESD系统卡件,振动监测系统卡件,汽轮机控制系统模块,燃气发电机备件

Copyright © 2025 版权所有: 产品网

免责声明:以上所展示的信息由企业自行提供,内容的真实性、准确性和合法性由发布企业负责。产品网对此不承担任何保证责任。

商盟客服

您好,欢迎莅临,欢迎咨询...