D12 USB固件编程

D12 USB固件编程

ID:37638230

大小:111.40 KB

页数:8页

时间:2019-05-27

D12 USB固件编程_第1页
D12 USB固件编程_第2页
D12 USB固件编程_第3页
D12 USB固件编程_第4页
D12 USB固件编程_第5页
资源描述:

《D12 USB固件编程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、广州周立功单片机发展有限公司Tel:(020)3873097638730977Fax:38730925http://www..zlgmcu.comD12USB固件编程(非同步模式)PHILIPS的D12芯片是一款具有并行总线和局部DMA传输能力的高速USB接口器件D12芯片提供了3个端点每个端点都有输入和输出端点号各一个同时端点2还提供了4种方式的数据传输方法下面对D12的固件编程进行论述D12固件需要占用单片机的一个硬件中断INT0或INT1资源用于响应D12发出的中断请求一各端点在固件中的使用1.端点0端点0包含的两个端点号为端点号0控制输

2、出端点号1控制输入这是USB器件的两个基本端点号主要用于与主机进行配置信息的交换和控制信息的接收一般还可以作为厂商请求的传输所以就不选择端点0来与主机进行用户的数据交换2.端点1端点1有两个16字节缓冲区的端点号端点号2普通输出端点号3普通输入当接收到端点号2一个OUT的PID时D12向单片机发出一个中断固件程序把接收到的信息放到GenEpBuf中并把位bEPPflags.bits.ep1_rxdone置1那我们的在主程序里查询bEPPflags.bits.ep1_rxdone是否为1如果bEPPflags.bits.ep1_rxdone为1就

3、把bEPPflags.bits.ep1_rxdone清0并读取GenEpBuf中的信息就可以实现数据的接收了当发送数据时只要调用D12_WriteEndpoint子程序固件程序把发送的数据写到D12的端点号3的缓冲区中并把缓冲区使能D12器件的端点号3在接收到IN的PID时会自动把数据发送出去D12_WriteEndpoint的完整的子程序调用名称为D12_WriteEndpoint(unsignedcharendp,unsignedcharlen,unsignedchar*buf)endp为写入的端点号endp=1,3,5len为写到缓冲区的

4、字节数buf为发送数据的开始指针D12_WriteEndpoint子程序会把buf指针开始的len个字节写到D12相应的缓冲区中3.端点2端点2包含的端点号4输入和端点号5输出有四种工作模式非同步模式模式0即普通输入输出同步输出模式模式1同步输入模式模式2同步输入/输出模式模式3详细内容可以参考广州周立功单片机发展有限公司网站的PDIUSBD12器件手册网址http://www.zlgmcu.com/本文主要描述非同步模式当接收到端点号4一个OUT的PID时固件程序把接收到的信息放到EpBuf中并把位bEPPflags.bits.ep2_rxd

5、one置1那我们的在主程序里查询bEPPflags.bits.ep2_rxdone是否为1如果bEPPflags.bits.ep2_rxdone为1就把bEPPflags.bits.ep2_rxdone清0并读取EpBuf中的信息就可以实现数据的接收了当要发送数据时只要调用D12_WriteEndpoint子程序固件程序把发送的数据写到D12的端点号5的缓冲区中并把缓冲区使能D12器件的端点号5在接收到IN的PID时会自动把数据发送出去二固件函数库子程序说明USB51S库一共有3个文件包括USB51S.LIBISR.CISR.H为了增加USB通

6、信的灵活性并没有把所有的子程序都封装倒USB51S.LIB而是在ISR.C建立部分通信程序这样方便用户修改USB51S.LIB文件封装了51单片机用多路地址/数据总线配置对D12进行操作和CHAP9服务的指令ISR.C文件里包含了D12中断调用的子程序用户可以自行添加中断服务程序ISR.H为D12服务的头文件使用USB51S库对D12编程免除USB通信要求对USB协议深入了解的要求使编程变得更加轻松-1-广州周立功单片机发展有限公司Tel:(020)3873097638730977Fax:38730925http://www..zlgmcu.c

7、om库文件提供了14个函数给用户程序调用下面是这些子程序的定义和功能说明(1)voidfn_usb_isr()简介USB中断服务子程序来源USB51S.LIB说明本子程序是响应USB器件中断服务程序子程序在D12的INT_N引脚对应的中断中调用中断必须设置为最高级子程序调用后先读出D12的中断寄存器然后按中断的来源调用相应的子程序(2)voidusbserve(void)简介USB服务处理子程序来源USB51S.LIB说明该子程序的作用是处理USB的setup包在主循环中调用该子程序调用的周期会对USB器件的配置时间造成影响(3)voidrec

8、onnect_USB(void)简介USB总线重新连接指令来源ISR.C说明程序先把USB总线断开然后再连接固件没有调用用户必须调用才可以连接上主机(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。