毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
通用串行总线及外设开发+电路图+流程图(5)
图5 按键驱动流程图
4.1.2 对主芯片的读写操作函数的实现
如果芯片正常工作起来了,就可以正确读取其ID,因此编写读命令和写命令两个函数用来读取ID,以检测芯片是否正确工作起来了。读写函数不仅需要用到芯片提供的读写命令还需要参照硬件连接才能完成编写。接口的数据口和微控制器的P0口相连,A0和P3.4连接,读写控制引脚与微控制器的16、17引脚连接,中断请求引脚与微控制器的中断源0连接。这样在硬件连接的基础上再依据PDIUSBD12数据手册的时序图即可完成函数编写。前面的两个函数作为子函数。这样就实现了读ID,从而可以确定芯片是否正常工作,也初步验证了电路板的设计正确性。读写流程图如图6所示。
图6 读写流程图
4.2 鼠标主程序
将USB模块连接上计算机后,按复位键,程序重新运行,在程序的开始处,通过PDIUSBD12设置模式命令将其内部的上拉电阻断开。再编写一个延时函数,延时一段时间,待主机确认已断开连接,再将PDIUSBD12的上拉电阻通过设置模式命令连接上,这时主机会检测到USB设备插入。PDIUSBD12在完成相应操作后,将会产生中断请求信号,在芯片的14引脚出现低电平的中断请求信号,通知CPU进行相关处理。在芯片挂起、复位、成功接收数据和发送数据后都会有中断产生。在微控制器的主程序中不断查询14引脚状态,进而确定下一步的处理。当发生中断后,需要判断中断源,因此编写读中寄存器子程序,获取中断源。中断寄存器为八位,代表八个中断源,分别写八个对应的分支函数处理。
4.2.1 读端点零的数据
通过串口显示中断处理的信息,可以发现主机向端点0发送了数据,因此要将此时端点0中的数据读取出来。编写读取端点数据的函数、选择端点函数、清除中断标志函数、清除数据缓冲区函数。PDIUSBD12有多个端点,选择读取那个端点需要用到选择端点命令,选择端点函数实现对端点0的选择。端点0的缓冲区的数据读取后,还需清除数据缓冲区、清除中断标志位。这些子函数共同组成端点0中断处理函数。
通过串口调试助手能看到返回过来的信息,可以看到PDIUSBD12已经成功的接收了主机发送的8字节信息,在第一次接受到数据之后,会停顿一段时间,这段时间主机一直在请求输入,但是程序目前还没有返回数据,所以PIDUSBD12一直返回没有准备好的状态数据包,一段时间之后,主机又发送一次总线复位,如此三次之后进入挂起状态。读端点0数据流程图如图7所示[9-10]。
图7 读端点0数据流程图
4.2.2 设备描述符请求及返回
端点0缓冲区的8字节数据是USB协议定义的标准设备请求。为了明确请求的每个位的具体意义,还需要对USB协议进行研读。在USB协议中详细规定了和端点0有关的控制寄存器和状态寄存器的各个位的具体意义,通过C语言程序的位操作,可以按照要求对部分控制寄存器进行读写操作,并且能读出状态寄存器的内容,从而判断接口和端点工作状态,进而为中断提供中断源。USB协议定义了11个标准请求。USB标准请求数据结构如表1所示,标准请求及其代码如表2所示。
表1 USB标准请求数据结构
偏移量 域 字节数 取值 描述
0 bmRequestType 1 位 D7:数据传输方向
0=主机到设备 1=设备到主机 D6~5:请求类型
0=标准 1=类 2=厂商 3=保留
D4~0:接收者
0=设备 1=接口 2=端点
3=其他 4~31=保留
1 bRequest 1 数值 请求代码
共8页:
上一页
1
2
3
4
5
6
7
8
下一页
上一篇:
STC89C52单片机遥控电子密码锁的设计+电路图+源程序
下一篇:
模糊推理系统及其仿真研究+文献综述
M-Bus仪表总线协议及其应用
AT89C51单片机IIC总线的监控...
FPGA视频解码芯片I2C总线配置设计+程序
FPGA直扩MSK信号串行产生系统设计与实现
基于CAN总线的地铁屏蔽门的设计
RS-232串行通信接口的上位...
基于CAN总线的自动饮料售货机的设计
浅谈新形势下妇产科护理...
中国古代秘书擅权的发展和恶变
拉力采集上位机软件开发任务书
多元化刑事简易程序构建探讨【9365字】
浅谈传统人文精神茬大學...
谷度酒庄消费者回访调查问卷表
辩护律师的作证义务和保...
《醉青春》导演作品阐述
高校网球场馆运营管理初探【1805字】
国内外无刷直流电动机研究现状