您当前的位置:首页 > 公司动态

基于USB接口设备的固件程序设计

时间:2015-04-13  来源:扁平线圈电感厂家  点击:

PDIUSBD12命令接口:为进一步简化用PDIUSBD12编程,固件定义了一系列命令接口,它们压缩了使用PDIUSBD12的所有功能。
中断服务程序:这部分代码处理由PDIUSBD12产生的中断。它接收从PDIUSBD12内部的FIFO区到CPU存储器的数据,并且建立合适的标志以通知主程序处理。
主程序:主程序检查事件的标志,转移到合适的子程序做进一步的处理。它也包含人机接口代码,例如,发光二极管和键盘扫描。
协议层:协议层处理标准USB设备请求,也处理具体的用户请求诸如DMA和TWAIN。
2) 固件任务
在编写固件程序的过程中,PDIUSBD12 作为接口芯片硬件为我们做了大量的工作,其中包括:
a.检测新的进入事务;翻译从US电感测量B 总线上获得的信息;b. 检测事务的目的地址,以决定是否响应;e. 确定事务的类型;d. 从USB 总线上接收数据到FIFO;e. 从FIFO 中发送数据到USB 总线上;f. 计算校验位,检测并报告结果。
但还有相当一部分的工作由固件程序来完成。这部分任务包括:
a.初始化PDIUSBD12并处理PDIUSBD12的中断;b.响应各种请求,至少要响应标准的11种请求;c.选择适当的数据写入PDIUSBD12的FIFO;d.从PDIUSBD12的FIFO中读取数据;
3) PDIUSBD12 的初始化
与一般的接口芯片一样,PDIUSBD12必须先初始化以后再使用,初始化的步骤如下:
a.用Set Address/Enable命令使能芯片功能,地址应设为0;b.用Set Endpoint Enable命令使能芯片上除端点0、1外的所有端点;c.用Set Mode 命令断开连接,延时1-2s;用Set Mode 命令连接;d. 用命令Read Interrupt Register清空中断寄存器;
初始化完后,D12就可以接收USB 总线上的信息了。之后,主机通过端点0、1来读取设备信息,配置设备、设置设备地址,完成设备列举。
4) USB 设备的列举
当有一个USB 一体电感设备连接到主机上时,主机的USB总线驱动、根集线器驱动获得设备连接的通知,开始列举设备。在主机一端,列举设备的过程是向设备发出一系列的标准请求。在设备一端,则需要响应主机发出的请求。其顺序如下:
a响应获取设备描述符的请求。务必保证设备描述符的正确发送;b.响应设置地址的请求,设备进入编址态;c.连续三次响应获取设备描述符请求;d.响应获取配置描述符的的请求,务必保证配置描述符的正确发送;e.发送全部的配置描述符,同时发送所有的接口描述符、端点描述符;
如果以上步骤都正确,则主机会提示找到新设备,安装驱动程序。否则,提示找到未知设备,设备不可用。
5) USB 设备固件框架的实现
从上面的讨论发现编写USB设备的固件实质上是处理各种主机提出的请求。其中,标准的11个请求是必须实现的,如果要求设备差模电感有其它的功能还必须加入自定义的请求。按照USB 2.0 中的定义,称这些固件程序为USB设备的框架。下面介绍USB设备框架的实现。
3. 主程序的结构
一旦加电,MCU就要初始化所有的端口,存储器,定时器和中断服务子程序。之后,MCU需要重新连接USB。这个程序很重要因为它保证了在MCU未准备好服务D12之前,D12不会动作。
在主循环程序里面,MCU会询问键盘上的任何动作。如果任何一个具体的键被按下,处理键的命令就会执行处理程序,之后返回主程序。这个程序仅是用来调试用。1ms定时是用来启动检查被按下键的子程序。
当询问到达检查Setup包时,它需要先确定setup标志是否建立。如果setup标志已经确立,它将发送设备请求到协议层进行处理插件电感器。下面的流程图显示了主程序在前台执行的情况。
4. 中断服务程序的实现
PDIUSBD12固件是完全中断驱动的,因此贴片电感中断服务程序是整个固件编写过程中非常重要的一环。在进入中断服务程序后首先要发用命令Read Interrupt Register(控制字为F4H)读取中断寄存器,根据中断寄存器的内容判断中断源,然后跳转到不同的服务程序中去处理中断。
中断服务程序(ISR)与主程序通信是通过事件标志“EPPFLAG”和数据缓冲区“CONTROL-XFER”。
主程序和中断服务程序(ISR)之间任务分配是,ISR从D12收集数据,主程序将处理这些数据。ISR只在它收集了足够的数据才通知主程序准备处理,这样会减少不必要的主程序服务时间,也简化了主程序。
总线重置和空闲在ISR里面不需要特殊的处理。ISR要么设置总线重置标志,要么在EPPFLAG里暂停这一位并退出。

大电流电感

基于SOPC的简易误码率测试仪设计技术引 言 本设计主要用于石油勘探仪器车与外部设备连接电缆的通信可靠性测试。误码率测试仪主要由测试信号发生模块、收发模块、误码统计模块以及键盘和液晶显示模块等部分组成。通过对测量参数的设置,该设备可以对通

放大器驱动负载过去,任意波形发生器最棘手的部分是输出级的设计。典型信号发生器的输出范围在 25 mV 到 5 V 之间。为了驱动一个 50 Ω 的负载,传统设计采用高性能分立式器件,并联大量集成器

跨频多路通信转接平台设计与实现摘要:提出一种适合于快速接入、灵活操作的跨频多路通信转接平台设计,可实现灾害现场多种制式的通信系统的互联互通,尤其对于重大灾害事故、突发事件现场,以通信转接平台为核心,实现现场通信指挥组网,并可实现消

注塑加工厂


上一篇通信电源蓄电池温度监测系统设计

下一篇基于MSP430F149单片机的人机界面设计


  
  温馨提示
网站首页 | 产品展示 | 科技前沿 | 行业资讯
本公司专业研发、设计、生产、销售贴片电感、插件电感、功率电感、大电流电感、扁平线圈电感、一体成型电感。
专业电感生产制造商,品质优异、交期快。
在线客服
热线电话