广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
1
PDIUSBD12 固件编程指南
介绍
PDIUSBD12 是一款带有并行总线和局部 DMA 传输能力的高速 USB 接口器件 固件设计的目标就是
使 PDIUSBD12 在 USB 上达到最大的传输速率
外围设备例如打印机 扫描仪 外部的海量存储器和数码
相机都可使用 PDIUSBD12 在 USB 上传输数据
这些设备的 CPU 要忙于处理许多设备控制和数据以及图像
处理等任务
PDIUSBD12 的固件设计成完全的中断驱动 当 CPU 处理前台任务时 USB 的传输可在后台
进行
这就确保了最佳的传输速率和更好的软件结构 同时简化了编程和调试
后台 ISR
中断服务程序 和前台主程序循环之间的数据交换通过事件标志和数据缓冲区来实现 例
如
PDIUSBD12 的批量输出端点可使用循环的数据缓冲区 当 PDIUSBD12 从 USB 收到一个数据包 那
么就对 CPU 产生一个中断请求
CPU 立即响应中断 在 ISR 中 固件将数据包从 PDIUSBD12 内部缓冲区
移到循环数据缓冲区并在随后清零 PDIUSBD12 的内部缓冲区以使能接收新的数据包
CPU 可以继续它当
前的前台任务直到完成
例如打印当前页 然后返回到主循环检查循环缓冲区内是否有新的数据并开始其
它的前台任务
由于这种结构
主循环不关心数据是来自 USB 串口还是并口 它只检查循环缓冲区内需要处理的新
数据
这个概念很重要 这样主循环程序专注于数据的处理而 ISR 能够以最大可能的速度进行数据的传输
相似的
控制端点在数据包处理时采用了同样的概念 ISR 接收和保存数据缓冲区中的控制传输并设
置相应的标志寄存器
主循环向协议处理程序发出请求 由于所有的标准器件 级别和厂商请求都是在协
议处理程序中进行处理
ISR 得以保持它的效率 而且一旦增加新的请求 只需要在协议层进行修改
结构
固件结构
评估板的固件有着如下的积木式结构
主循环 发送 USB 请求 读测试 Key 控制 LED 和处理 USB
总线事件等等
MAINLOOP.C
标准请求
CHAP_9.C
厂商请求
PROTODMA.C
中断服务程序
ISR.C
PDIUSBD12 命令接口
D12CI.C