首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
USB总线在同步相量测量单元中的应用
来源:本站整理  作者:佚名  2009-12-10 13:47:21




4.1  程序整体结构
    对于CPU而言,PDIUSBD12芯片与一个外部存储器完全相同,CPU通过总线控制的方式对PDIUSBD12进行操作。USB接口的传输并不会占用许多CPU资源,CPU可以执行前台操作,而USB接口传输的工作则在后台完成,两者之间通过中断服务程序连接。当PDIUSBD12 从USB 收到一个数据包,那么就对CPU 产生一个中断请求,CPU 立即响应中断。在ISR中固件将数据包从PDIUSBD12 内部缓冲区移到循环数据缓冲区,并在随后清零PDIUSBD12 的内部缓冲区以使能接收新的数据包CPU 可以继续它当前的前台任务直到完成,然后返回到主循环检查循环缓冲区内是否有新的数据,并开始其它的前台任务。无论是上传或者下载数据都是对循环缓冲区内的数据进行处理,主循环只要检查循环缓冲区内是否有要处理的新数据。程序整体结构框图如图1所示。
各模块分工如下:
    (1)硬件提取层:对单片机的I/O口、数据总线等硬件接口进行操作。
    (2)PDIUSBD12命令接口:对PDIUSBD12器件进行操作的模块子程序集。
    (3)中断服务程序:当PDIUSBD12向单片机发出中断请求时,读取PDIUSBD12的中断传输来的数据,并进行相关处理。
    (4)标准请求处理程序:对USB的标准设备请求进行处理。
    (5)厂商请求处理程序:对用户添加的厂商请求进行处理。
    (6)主循环程序:发送USB请求、处理USB总线事件和用户功能处理等。

图1  USB驱动MCU整体结构图
4.2  硬件提取层相关程序
    硬件提取层执行对单片机I/O口、数据总线等的操作,包含向PDIUSBD12发送数据或命令的子程序及从PDIUSBD12读取数据的子程序,该部分代码需对地址总线和数据总线进行直接操作。PDIUSBD12的任何操作都是由命令指令和数据指令组合完成的,通过改变A0引脚的电平就可以完成命令模式/数据模式的切换。
4.3  命令接口
    该部分是由一系列命令接口子程序构成的,包含了所有PDIUSBD12给出的访问功能接口的命令。在命令接口中调用了硬件提取层中的子程序。PDIUSBD12的所有功能都必须由类似的方法完成,先发送一条命令,然后写该命令的具体参数。有的命令参数是多个字节的,如设置模式命令,此时就必须调用两次写数据线的指令。命令接口程序的编写格式相对固定,按照PDIUSBD12说明书中给出的命令汇总表依次编写即可。
4.4  中断服务程序
    中断服务程序代码处理由PDIUSBD12产生的中断,它将数据从PDIUSBD12内部的缓冲区内取出,并建立正确的标志,通知主循环进行处理。当PDIUSBD12向单片机发出中断请求后,单片机调用读取中断寄存器的标准命令接口子程序d12_readinterruptregister( )来决定中断源,然后跳转到相应的中断服务子程序进行处理。中断服务程序从PDIUSBD12收集数据,而主循环程序对数据进行处理。当中断服务程序收集到足够的数据时,它通知主程序已经做好准备等待处理。例如在发送数据包阶段建立包时,中断服务程序将建立包和数据都存入缓冲区内,然后将setup_packet标志送到主循环,这样主循环就可以节省不必要的服务时间。
4.5  总线复位和挂起
    当接收到总线复位或挂起的请求时,中断服务程序将bus_set或suspends标志位置位,然后退出。
    控制传输总是由建立阶段开始,之后为可选的数据阶段,然后结束于状态阶段。单片机需通过选择控制输出端点来提取建立包的内容来决定端点是为满还是为空。如果控制端点是为满,单片机将从缓冲区内读出内容并将其存入存储区。之后,单片机将从存储区使主设备请求生效。如果是一个有效的请求,单片机需向控制端点发送应答建立命令,以重新使能下一个建立阶段。接下来单片机需要证实传输是控制读还是写,这可以通过建立包重定向的请求类型位来实现。

上一页  [1] [2] [3] [4] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:315,136.70000 毫秒