毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

USB通信程序设计 第8页

更新时间:2010-3-14:  来源:毕业论文
USB通信程序设计 第8页
因此簇和扇区的概念只是在BPB中给出存储介质信息的时候告之系统就可以了,这里只要做好LBA与物理地址间的转换就可以了。由于做为U盘的Flash不要求启动,因此可以没有MBR 区,只包含DBR、FAT、DIR和DATA四个区。因此,Flash的前两个Block的内容如下:
表3.6 Flash的前两个Block
LBA Block/Page 长度 内容说明
0H 0/0 512字节 MBR=BPB+Excutable Code+55AA
1-2H 0/1-0/2 1024字节 FAT区(第一份FAT)
3-4H 0/3-0/4 1024字节 FAT区备份(第二份FAT)
5-39H   目录区
40H   数据区
当主机发出READ命令后,Flash读写操作即告开始,主机首先读取MBR,得到有关存储介质的有关信息,诸如扇区长度、每簇扇区数以及总扇区数等内容,以便知道此盘有多大。如果读取正确,会接着读取文件分配表,借以在PC 机上的可移动盘符中显示文件目录,并可以复制、删除或是创建文件。系统自动将这些命令都转换成READ或WRITE两种命令,通过USB的READ或WRITE命令块描述符来从Flash中相应扇区读取数据,或是将特定长度的数据写入Flash相应地址中。
第四章 程序实现与调试
4.1 固件程序的实现
4.1.1 主循环——MAINLOOP.C 
 主循环检查事件标志并进入子程序进行进一步的处理。MCU一但上电就需要初始化其所有端口、存储区、定时器和中断服务程序。之后MCU将重新连接USB,包括将Soft_Connect寄存器设置为ON,因为这些过程确保了在MCU准备好服务D12之前D12不会进行操作,所以是很重要的。下图为主循环流程:                                 图4.1 主循环流程图
4.1.2 中断服务程序——D12ISR.C
 中断服务程序代码处理由D12产生的中断,它将数据从D12的内FIFO取回到CPU存储器,并建立正确的事件标志,以通知相应的子程序进行处理。下图为中断服务程序流程图:
                          图4.2 中断服务程序流程图
4.1.2.1 控制端点处理
 控制传输总是在SETUP阶段开始,之后为可选的DATA阶段,然后在STATUS阶段结束。固件使用这3个状态来正确处理控制传输。下图为控制端点处理程序流程图:                          图4.3 控制输出程序流程图
                           图4.4 控制输入程序流程图
4.1.2.2 普通端点处理
 对于普通输出端点(本项目中为BULK_OUT端点)配置为从主机接收数据包。当MCU从主机接收输出中断标志(通过读中断寄存器识别)时,D12中断位清零。选择端点将清零缓冲区,接下来MCU需要确认数据的长度并把数据读出,然后进入数据处理子程序。
 对于普通输入端点(本项目中为BULK_IN端点)的中断,只要读取端点号的最后处理状态寄存器来清除中断寄存器的相应位,并把状态清零即可。输入端点中断是在发送完数据后才产生的,当还有数据要发送时,可以在中断程序程序里接着继续发送。
 下图为普通端点处理程序流程图:.
       图4.5 普通端点处理程序流程图
4.1.2.3 总线复位和挂起改变
 总线复位和挂起并不要求在ISR中进行特殊的处理,所以这里直接退出程序即可。
4.1.2.4 数据提交函数
 在中断服务程序还里定义了数据提交函数。该子程序负责把数据写入端点缓冲区,然后提交给主机。下图为数据提交函数程序流程图:

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

USB通信程序设计 第8页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。