为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于单片机和CH375的U盘读写控制器设计

2013-05-07 41页 doc 2MB 13阅读

用户头像

is_354222

暂无简介

举报
基于单片机和CH375的U盘读写控制器设计湖南铁道职业技术学院毕业设计(论文) 毕业设计(论文) 课题:基于单片机和CH375的U盘读写控制器 2011届毕业设计任务书 一、课题名称:基于单片机和CH375的U盘读写控制器设计 二、指导教师:粟慧龙 ...
基于单片机和CH375的U盘读写控制器设计
湖南铁道职业技术学院毕业设计(论文) 毕业设计(论文) 课:基于单片机和CH375的U盘读写控制器 2011届毕业设计任务书 一、课题名称:基于单片机和CH375的U盘读写控制器设计 二、指导教师:粟慧龙 三、设计内容与要求 1、课题概述 随着计算机技术的快速发展,USB存储设备的使用已经非常的广泛,随着USB规汇范的完善和成熟,USB外设和的各类不断丰富,应用领域也不断扩大。在传统的应用中,USB主要是PC扮演着主机的角色。根据USB的规范,可以看到USB的拓朴结构中居核心地位的是主机,每一次数据传输必须由主机发起和控制。但是随着单片机技术的发展,以及单片机应用领域的日益增长,USB外设的应用也随之扩大,为此在单片机系统中实现对USB外设控制也变得日益迫切。尤其在一些需要转存数据的设备、仪器上提供能够使用USB移动储存设备的接口已经变得非常有必要。本课题的研究目标是:基于单片机和USB总线接口芯片CH375,设计一个可嵌入到相关设备上的U盘读写控制器,以实现对设备、仪器相关数据的存储。 2、本课题的主要研究内容如下: 1、基于单片机和CH375器件的系统电路的研究; 2、FAT16和FAT32文件系统的研究,以及文件系统的自动识别、切换; 3、U盘的插入和拔出检测; 4、文件的打开、读取、写入、创建、删除; 5、的创建和删除,支持多级目录; 6、长文件名、长目录名支持。 四、设计参考资料 参考文献: 1、CH375器件使用手册 2、FAT16和FAT32文件系统 3、《单片机高级教程》,何立民,北京航空航天大学出版社,2000年。 4、《单片机的C语言应用程序设计》,马忠梅,北京航空航天大学出版社, 5、《计算机控制系统》,清华大学出版社。 6、孙霞 基本单片机的大容量数据存储技术的应用研究 微计算机信息 2006 7、张峰峰 嵌入式U盘读写器接口技术和系统设计 桂林电子科技大学 2007 8、杨全玖 基本CH375多通道USB接口与PC机通信的实现微计算机信息 2007 摘 要 介绍了一种USB总线的通用接口芯片CH375,并在此基础上提出了一种外部单片机读写U盘的基本方法及其硬件连接方法。单片机只要在原硬件系统中增加1个CH375芯片就可以直接调用CH375提供的子程序库来直接读取U盘中的数据,从而实现了普通单片杌与U盘的通讯、方法简单、便于操作、综合成本比较低,具有较大的推广应用价值。 关键词:U盘;CH375;接口芯片;单片机 Abstract A general purpose interface chip CH37 5 for USB is introduced in this paper.Based On which a new method of Using external single chip microcomputer to connect with the flash disk is given.Only add one CH375 chip to the single chip microcomputer s hardware system,the operator can use the program given by the CH375 to read the data from the flash disk and realize the communication between the single chip microcomputer and the flash disk.This method is very simple and can be operated easily. Keywords:USB;CH375;interface chip;single chip microcomputer 目 录 I摘 要 IIAbstract I目 录 3一、绪 论 4二、 总体设计与选择论证 42.1总体设计分析 42.2功能模块方案设计选择 42.2.1 MCU的选择 52.2.2 CH375工作方式方案选择 52.2.3电源选择 62.3系统方框图 7三、硬件设计分析 73.1 STC12C5A60AD单片机最小系统电路 83.1.1 STC12C5A60AD单片机简介 103.1.2 STC12C5A60AD系列主要性能: 113.1.3 7805三端正电源稳压电路 123.2 CH375接口电路 133.2.1 USB总线的通用接口芯片CH375资料简介 153.2.3 功能说明 183.3串口电平转换电路 183.3.1 MAX232资料简介 203.3.2 RS-232(DB-9) - 1 -3.4 按键控制模块 - 1 -3.5 LED 显示模块 - 2 -四、软件设计分析 - 2 -4.1 软件系统模块 - 4 -4.2主模块 - 4 -4.2.1单片机读写U盘文件(USB 存储设备的文件级接口) - 4 -4.2.2 本地端的单片机软件 - 7 -4.2.3 CH375 的U 盘文件级子程序库说明 - 10 -4.3 USB模块 - 10 -4.3.2 USB - 10 -4.4 BULK模块 - 10 -4.4.2 BULK_ONLY和UFI协议 - 13 -4.5 FAT模块 - 13 -4.5.2 FAT32 - 13 -4.6 中断处理模块 - 14 -五、方案的测试与分析 - 14 -六、 总 结 - 15 -参考文献 - 16 -致谢 - 17 -附录 - 17 -总原理图 - 17 -电路PCB图 - 17 -元器件清单 - 17 -程序 一、绪 论 随着计算机技术的快速发展,USB(Universal Serial Bus)存储设备的使用已经非常普遍,USB用于将适用USB的外围设备(device)连接到主机(host),实现二者之间数据传输的外部总线结构;是一种快速、灵活的总线接口[5]。它最大的特点是易于使用,主要是用在中速和低速的外设。随着USB规范的完善和成熟,USB外设的种类不断丰富,应用领域也不断扩大。在传统的应用中,主要是PC扮演着主机的角色。根据USB的规范,可以看到在USB的拓朴结构中居于核心地位的是主机,每一次的数据传输都必须由主机发起和控制。但是随着单片机产品应用领域的日益增长,USB外设的应用范围也随之扩大,为此在单片机系统中实现对USB外设控制也变得日益迫切。因此在一些需要转存数据的设备,仪器上使用USB移动存储设备接口的芯片便相继产生了,CH375就是其中之一,它是一个USB总线的通用接口芯片,支持HOST主机方式和SLAVE设备方式[4]. 如今的USB就象当日的R232,最终发展必是业界的主流外设接口技术。USB有着其它接口不可替代的优势[12]. 随着USB技术的发展,计算机的移动存储介质普遍采用U盘或移动硬盘。 如今,USB技术已经越来越普及和成熟,低成本、高稳定性、较高的数据传输速率和即插即用的方便性,使其备受硬件厂商的青睐。随着数据采集和单片机用户对移动存储的需求越来越大,具有USB接口的存储设备以其优异的性价比和灵活性常用来进行数据的存储和交换,所以在单片机系统中实现对优盘或移动硬盘的直接读写是非常有价值的[6]。 介绍了一种USB总线的通用接口芯片CH375,并在此基础上提出了一种外部单片机读写U盘的基本方法及其硬件连接方法。单片机只要在原硬件系统中增加1个CH375芯片就可以直接调用CH375提供的子程序库来直接读取U盘中的数据,从而实现了普通单片机与U盘的通讯、方法简单、便于操作、综合成本比较低,具有较大的推广应用价值。 二、 总体方案设计与选择论证 2.1总体设计分析 2.2功能模块方案设计选择 2.2.1 MCU的选择 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 AT89s51 AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案 STC12C5A60AD STC12C5A60AD单片机是宏晶科技生产的单时钟/ 机器周期(1T)的单片机,是高速/ 低功耗/超强抗干扰的新一代8051 单片机,指令代码完全兼容传统8051。 特点: · 加密性强,无法解密 · 超强抗干扰: · 速度快,1 个时钟/ 机器周期,可用低频晶振,大幅降低EMI · --- 出口欧美的有力保证 · 输入/ 输出口多,最多有44 个I/O 口,A/D 做按键扫描还可以节省很多I/O · 超低功耗:掉电模式可由外部中断唤醒,适用于电池供电系统,如水表、气表、便携设备等。 · 在系统可编程,无需编程器,无需仿真器,可远程升级 · 可送STC-ISP 下载编程器,1 万片/ 人/ 天 · 内部集成MAX810 专用复位电路,原复位电路可以保留,也可以不用,不用时RESET 脚接1K 电阻到地。 比较这两种我们选用STC12C5A60AD 2.2.2 CH375工作方式方案选择 USB总线的通用接口芯片CH375具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/DSP/MCU/MPU等控制器的系统总线上。单片机只要在原硬件系统中增加1个CH375芯片就可以直接调用CH375提供的子程序库来直接读取U盘中的数据,从而实现了普通单片机与U盘的通讯。 CH375 芯片可以工作于USB-HOST 主机方式或者USB 设备方式。 CH375的USB 主机方式支持并行接口和串行接口,在USB主机方式下,CH375支持各种常用的USB全速设备,外部单片机需要编写固件程序按照相应的USB协议与USB 设备通讯。但是对于USB 存储设备,CH375 内置了相关协议,通常情况下,外部单片机不需要编写固件程序,就可以直接通讯。 并口方式 CH375 的TXD引脚通过1KΩ左右的下拉电阻接地或者直接接地,从而使CH375 工作于并口方式。CH375芯片具有通用的被动并行接口,可以直接连接多种单片机、DSP、MCU等。在普通的MCS-51系列单片机的典型应用电路中,CH375 芯片可以通过8 位被动并行接口的D7~D0、-RD、-WR、-CS、A0 直接挂接到单片机U2 的系统总线上。 串口方式 如果CH375 芯片的TXD 引脚悬空或者没有通过下拉电阻接地,那么CH375 工作于串口方式。在串口方式下,CH375只需要与单片机/DSP/MCU 连接3 个信号线,TXD 引脚、RXD 引脚以及INT#引脚,其它引脚都可以悬空。除了连接线较少之外,其它外围电路与并口方式基本相同。 比较这两种我们选用CH375工作于主机方式下的并口方式 2.2.3电源选择 电源模块是单片机应用系统或数据采集系统中不可缺少的部分,也是保证系统稳定、安全工作的前提。直流电源芯片按原理分为线性电源和开关稳压电源两种。 线性电源 通过改变调整元件控制信号的强弱来调节其等效电阻值. 从而稳定输出电压.特点是纹波系数小.但效率低.一般适用于小功率的 开关稳压电源 通过改变开关管的导通时间,得到稳定的电压输出,特点是纹波系数大.电磁兼容性差、效率高、过载能力强,一般适用于太功率或要求效率高的场合。 比较这两种我选择线性电源。 2.3系统方框图 SHAPE \* MERGEFORMAT 三、硬件设计分析 硬件电路主要分为单片机最小系统、CH375接口电路、串口电平转换电路、按键控制模块、LED显示电路组成。 3.1 STC12C5A60AD单片机最小系统电路 单片机最小系统由MCU、时钟电路、复位电路和电源模块组成。 MCU 时钟电路 复位电路 电源模块 3.1.1 STC12C5A60AD单片机简介 STC12C5A60S2/AD/PWM 系列单片机是宏晶科技生产的单时钟/ 机器周期(1T)的单片机,是高速/ 低功耗/超强抗干扰的新一代8051 单片机,指令代码完全兼容传统8051,但速度快8-12 倍。内部集成MAX810 专用复位电路,2 路PWM,8 路高速10 位A/D 转换(250K/S),针对电机控制,强干扰场合。 STC12C5A60AD单片机 * 增强型 8051 CPU,1T,单时钟/ 机器周期,指令代码完全兼容传统8051 * 工作电压: STC12C5A60S2 系列工作电压: 5.5V - 3.3V(5V 单片机) STC12LE5A60S2 系列工作电压:3.6V - 2.2V(3V 单片机) * 工作频率范围:0 - 35MHz,相当于普通8051 的 0~420MHz * 用户应用程序空间 8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K 字节...... * 片上集成 1280 字节 RAM * 通用I/O 口(36/40/44 个),复位后为: 准双向口/ 弱上拉(普通8051 传统I/O 口) 可设置成四种模式:准双向口/ 弱上拉,推挽/ 强上拉,仅为输入/ 高阻,开漏 每个I/O 口驱动能力均可达到20mA,但整个芯片最大不要超过55mA * ISP (在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器 可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片 * 有EEPROM 功能(STC12C5A62S2/AD/PWM 无内部EEPROM) * 看门狗 * 内部集成MAX810 专用复位电路(外部晶体12M 以下时,复位脚可直接1K 电阻到地) * 外部掉电检测电路: 在P4.6 口有一个低压门槛比较器 5V 单片机为1.32V,误差为+/-5%,3.3V 单片机为1.30V,误差为+/-3% * 时钟源:外部高精度晶体/ 时钟,内部R/C 振荡器(温漂为+/-5% 到+/-10% 以内) 用户在下载用户程序时,可选择是使用内部R/C 振荡器还是外部晶体/ 时钟 常温下内部R/C 振荡器频率为:5.0V 单片机为: 11MHz ~ 15.5MHz 3.3V 单片机为: 8MHz ~ 12MHz 精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准 * 共4 个16 位定时器 两个与传统8051 兼容的定时器/ 计数器,16 位定时器T0 和T1,没有定时器2,但有独立波特率发生器 做串行通讯的波特率发生器 再加上2 路PCA 模块可再实现2 个16 位定时器 * 2 个时钟输出口,可由T0 的溢出在P3.4/T0 输出时钟,可由T1 的溢出在P3.5/T1 输出时钟 * 外部中断I/O 口7 路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA 模块, Power Down 模式可由外部中断唤醒, INT0/P3.2, INT1/P3.3, P3.4/T0, P3.5/T1, P3.0/RxD, CCP0/P1.3(也可通过寄存器设置到P4.2 ), CCP1/P1.4 (也可通过寄存器设置到P4.3) * PWM(2 路)/PCA(可编程计数器阵列,2 路) --- 也可用来当2 路D/A 使用 --- 也可用来再实现2 个定时器 --- 也可用来再实现2 个外部中断(上升沿中断/ 下降沿中断均可分别或同时支持) * A/D 转换, 10 位精度ADC,共8 路,转换速度可达250K/S(每秒钟25 万次) * 通用全双工异步串行口(UART),由于STC12 系列是高速的8051,可再用定时器或PCA 软件实现多串口 * STC12C5A60S2 系列有双串口,后缀有S2 标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2), TxD2/P1.3(可通过寄存器设置到P4.3) * 工作温度范围: -40 - +85℃(工业级) / 0 - 75℃(商业级) * 封装:PDIP-40,LQFP-44,LQFP-48 I/O 口不够时,可用2 到3 根普通I/O 口线外接 74HC164/165/595(均可级联)来扩展I/O 口,还可用A/D 做按键扫描来节省I/O 口,或用双CPU,三线通信,还多了串口。 3.1.2 STC12C5A60AD系列主要性能: ●高速:1 个时钟/ 机器周期,增强型8051 内核,速度比普通8051 快8~12 倍 ●宽电压:5.5~3.3V,2.2~3.6V(STC12LE5A60S2 系列) ●低功耗设计:空闲模式,掉电模式(可由外部中断唤醒) ●工作频率:0~35MHz,相当于普通8051:0~420MHz ●时钟:外部晶体或内部RC 振荡器可选,在ISP 下载编程用户程序时设置 ● 8/16/20/32/40/48/52/56/60/62K 字节片内Flash 程序存储器,擦写次数10 万次以上 ● 1280 字节片内RAM 数据存储器 ●芯片内EEPROM 功能,擦写次数10 万次以上 ● ISP / IAP,在系统可编程/ 在应用可编程,无需编程器/ 仿真器 ● 8 通道,10 位高速ADC,速度可达250K/S,2 路PWM 还可当2 路D/A 使用 ● 2 通道捕获/ 比较单元(PWM/PCA/CCP), --- 也可用来再实现2 个定时器或2 个外部中断(支持上升沿/ 下降沿中断) ● 4 个16 位定时器,兼容普通8051 的定时器T0/T1,2 路PCA 实现2 个定时器 ●可编程时钟输出功能,T0 在P3.4 输出时钟,T1 在P3.5 输出时钟,BRT 在P1.0 输出时钟 ●硬件看门狗(W D T ) ●全双工异步串行口(UART),兼容普通8051 的串口 ●先进的指令集结构,兼容普通8051 指令集 有硬件乘法/ 除法指令 ●通用I/O 口(36/40/44 个),复位后为: 准双向口/ 弱上拉(普通8051 传统I/O ) 可设置成四种模式:准双向口/ 弱上拉,推挽/ 强上拉,仅为输入/ 高阻,开漏 每个I/O 口驱动能力均可达到20mA,但整个芯片最大不得超过55mA RST:复位脚1K 电阻接地即可 EX_LVD:是外部低压检测比较器 不用的I/O 口:浮空即可 使用LQFP48 封装时,最多有44 个I/O 口 使用LQFP44 封装时,最多有40 个I/O 口 使用PDIP40 封装时,最多有36 个I/O 口 3.1.3 7805三端正电源稳压电路 7805是三端正电源稳压电路,它的封装形式为T0-220。它有一系列固定的电压输出,应用非常的广泛。每种由于内部电流的限制,以及过热保护和安全工作区的保护,使用起来可靠、方便,而且价格便宜。如果能够提供足够的散热片,它们就能够提供大于1.5A的输出电流。虽然是按照固定值来设计的,但是当接入适当的外部器件后,就能够获得各种不同的电压和电流。78XX系列集成稳压IC型号中的78后面的数字代表该三端集成稳压电路的输出电压,如7805表示输出电压为正5V。 特点: · 最大输出电流为1.5A · 输出电压为5V · 热过载保护 · 短路保护 · 输出晶体管安全工作区保护输出晶体管安全工作区保护 3.2 CH375接口电路 这是CH375与单片机的连接电路。CH375 的TXD引脚通过10K的下拉电阻R43接地,从而使CH375 工作于并口方式。 USB 总线包括一对5V 电源线和一对数据信号线,通常,+5V 电源线是红色,接地线是黑色,D+信号线是绿色,D-信号线是白色。USB 插座P1 可以直接连接USB 设备,也可以在提供给USB 设备的+5V 电源线上串接具有限流作用的电阻R2、R3,USB 电源电压必须是5V。 电容C2用于外部电源退耦,C2 是容量为0.1μF的独石或高频瓷片电容。 电容C3 用于CH375 内部电源节点退耦,C3 是容量为0.01μF 的独石或高频瓷片电容,如果对EMI 没有要求那么可以省掉C3。 晶体XTAL1、电容C6 和C7 用于CH375 的时钟振荡电路。USB-HOST 主机方式要求时钟频率比较准确,XTAL1 的频率是12MHz±0.4‰,C6 和C7 是容量约为15pF 的独石或高频瓷片电容。 如果电源上电过程较慢并且电源断电后放电时间较长,那么CH375将不能可靠复位。可以在RSTI引脚与VCC 之间跨接一个容量为0.47μF 的电容C5,同时可以减少干扰。 3.2.1 USB总线的通用接口芯片CH375资料简介 CH375 是一个USB总线的通用接口芯片,支持USB-HOST主机方式和USB-DEVICE/SLAVE设备方式。在本地端,CH375具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/DSP/MCU/MPU等控制器的系统总线上。在USB主机方式下,CH375还提供了串行通讯方式,通过串行输入、串行输出和中断输出与单片机/DSP/MCU/MPU 等相连接。 CH375的USB 主机方式支持常用的USB 全速设备,外部单片机可以通过CH375 按照相应的USB 协议与USB 设备通讯。CH375 还内置了处理Mass-Storage 海量存储设备的专用通讯协议的固件,外部单片机可以直接以扇区为基本单位读写常用的USB 存储设备(包括USB 硬盘/USB 闪存盘/U 盘) 特点 ● 全速USB-HOST 主机接口,兼容USB V2.0,外围元器件只需要晶体和电容。 ● 全速设备接口,完全兼容CH372 芯片,支持动态切换主机与设备方式。 ● 主机端点输入和输出缓冲区各64 字节,支持常用的12Mbps 全速USB 设备。 ● 支持USB 设备的控制传输、批量传输、中断传输。 ● 自动检测USB 设备的连接和断开,提供设备连接和断开的事件通知。 ● 内置控制传输的协议处理器,简化常用的控制传输。 ● 内置固件处理海量存储设备的专用通讯协议,支持Bulk-Only传输协议和SCSI、UFI、RBC 或等效命令集的USB 存储设备(包括USB 硬盘/USB 闪存盘/U 盘)。 ● 通过U 盘文件级子程序库实现单片机读写USB 存储设备中的文件。 ● 并行接口包含8 位数据总线,4 线控制:读选通、写选通、片选输入、中断输出。 ● 串行接口包含串行输入、串行输出、中断输出,支持通讯波特率动态调整。 ● 支持5V 电源电压和3.3V 电源电压,CH375A 芯片还支持低功耗模式。 ● 采用SOP-28 封装,可以提供SOP28 到DIP28 的转换板。 封装及引脚说明 3.2.3 功能说明 3.2.3.1 一般说明 CH375 芯片可以工作于USB-HOST 主机方式或者USB 设备方式。 CH375的USB 主机方式支持并行接口和串行接口。在USB主机方式下,CH375支持各种常用的USB全速设备,外部单片机需要编写固件程序按照相应的USB协议与USB 设备通讯。但是对于USB 存储设备,CH375 内置了相关协议,通常情况下,外部单片机不需要编写固件程序,就可以直接通讯。 3.2.3.2 本地端的硬件 CH375 芯片在本地端提供了通用的被动并行接口和点对点的串行接口。 并行接口 并口信号线包括:8 位双向数据总线D7~D0、读选通输入引脚RD#、写选通输入引脚WR#、片选输入引脚CS#、中断输出引脚INT#以及地址输入引脚A0。通过被动并行接口,CH375芯片可以很方便地挂接到各种8 位单片机、DSP、MCU 的系统总线上,并且可以与多个外围器件共存。 CH375芯片的RD#和WR#可以分别连接到单片机的读选通输出引脚和写选通输出引脚。CS#由地址译码电路驱动,用于当单片机具有多个外围器件时进行设备选择。INT#输出的中断请求是低电平有效,可以连接到单片机的中断输入引脚或者普通I/O 引脚,单片机可以使用中断方式或者查询方式获知中断请求。 当WR#为高电平并且CS#和RD#及A0 都为低电平时,CH375 中的数据通过D7~D0输出;当RD#为高电平并且CS#和WR#及A0 都为低电平时,D7~D0上的数据被写入CH375 芯片中;当RD#为高电平并且CS#和WR#都为低电平而A0 为高电平时,D7~D0 上的数据被作为命令码写入CH375 芯片中。 串行接口 串行接口只能用于USB 主机方式,CH375 芯片的USB 设备方式不支持串口。 串口信号线包括:串行数据输入引脚RXD、串行数据输出引脚TXD、中断输出引脚INT#。通过串行接口,CH375 可以用最少的连线与单片机、DSP、MCU 进行较远距离的点对点连接。 CH375芯片的RXD 和TXD可以分别连接到单片机的串行数据输出引脚和串行数据输入引脚。INT#输出的中断请求是低电平有效,用于通知单片机。 CH375 的串行数据格式是1个起始位、9个数据位、1个停止位,其中前8个数据位是一个字节数据,最后1个数据位是命令标志位。第9位为0时,前8位的数据被写入CH375芯片中,第9位为1时,前8位被作为命令码写入CH375芯片中。CH375的串行通讯波特率默认是9600bps,单片机可以随时通过SET_BAUDRATE 命令选择合适的通讯波特率。 其它 在CH375 芯片的复位期间,TXD引脚用于选择通讯接口。如果CH375 在复位期间检测到TXD引脚为低电平则启用并行接口,否则启用串行接口。如果启用串行接口,那么复位完成后TXD 引脚将用于串行数据输出,并且CH375 芯片只能工作于USB 主机方式。 CH375芯片的ACT#引脚用于状态指示。在内置固件的USB设备方式下,当USB 设备尚未配置或者取消配置后,该引脚输出高电平;当USB 设备配置完成后,该引脚输出低电平。对于CH375A 芯片,在USB主机方式下,当USB 设备断开后,该引脚输出高电平;当USB设备连接后,该引脚输出低电平。CH375 的ACT#引脚可以外接串了限流电阻的发光二级管LED,用于指示相关的状态。 CH375 芯片的UD+和UD-引脚是USB 信号线,工作于USB 设备方式时,应该直接连接到USB 总线上;工作于USB 主机方式时,可以直接连接到USB设备。如果为了芯片安全而串接保险电阻或者电感,那么交直流等效串联电阻应该在5Ω之内。 CH375芯片内置了电源上电复位电路,一般情况下,不需要外部提供复位。RSTI 引脚用于从外部输入异步复位信号;当RSTI 引脚为高电平时,CH375芯片被复位;当RSTI 引脚恢复为低电平后,CH375会继续延时复位20mS 左右,然后进入正常工作状态。为了在电源上电期间可靠复位并且减少外部干扰,可以在RSTI引脚与VCC 之间跨接一个容量为0.47uF 左右的电容。RST引脚和RST#引脚是复位状态输出引脚,分别是高电平有效和低电平有效;当CH375电源上电复位或者被外部强制复位以及复位延时期间,RST 引脚和RST#引脚分别输出高电平和低电平;CH375复位完成后,RST 引脚和RST#引脚分别恢复到低电平和高电平。RST 和RST#引脚可以用于向外部单片机提供上电复位信号。 CH375芯片正常工作时需要外部为其提供12MHz 的时钟信号。一般情况下,时钟信号由CH375内置的反相器通过晶体稳频振荡产生。外围电路只需要在XI 和XO 引脚之间连接一个标称频率为12MHz的晶体,并且分别为XI 和XO 引脚对地连接一个高频振荡电容。如果从外部直接输入12MHz时钟信号,那么应该从XI 引脚输入,而XO 引脚悬空。 CH375芯片支持5V电源电压或者3.3V 电源电压。当使用5V 工作电压时,CH375 芯片的VCC 引脚输入外部5V 电源,并且V3 引脚应该外接容量为0.01uF 左右的电源退耦电容。当使用3.3V 工作电压时,CH375 芯片的V3引脚应该与VCC引脚相连接,同时输入外部的3.3V 电源,并且与CH375 芯片相连接的其它电路的工作电压不能超过3.3V 3.3串口电平转换电路 3.3.1 MAX232资料简介 MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。 3.3.1.1 引脚介绍: 第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。 第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。 其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。 8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。 TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。 第三部分是供电。15脚GND、16脚VCC(+5v)。 3.3.1.2 主要特点: 1、符合所有的RS-232C技术标准 2、只需要单一 +5V电源供电 3、片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压V+、V- 4、功耗低,典型供电电流5mA 5、内部集成2个RS-232C驱动器 6、内部集成两个RS-232C接收器 3.3.1.3 注意事项: 232是电荷泵芯片,可以完成两路TTL/RS-232电平的转换,它的的9、10、11、12引脚是TTL电平端,用来连接单片机的。 3.3.2 RS-232(DB-9)  RS-232C 标准(协议)的全称是 EIA-RS-232C 标准,其中EIA (Electronic Industry Association)代表美国电子工业协会,RS(recommeded standard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。。它规定连接电缆和机械、电气特性、信号功能及传送过程。常用物理标准还有有EIA RS-422A、EIA RS-423A、EIA RS-485。 这里只介绍EIA RS-232C(简称232,RS232)。 例如,目前在IBM PC机上的COM1、COM2接口,就是RS-232C接口。 3.3.2.1 针脚定义 1脚:载波检测 CD 2脚: 接收数据 RXD 3脚: 发送数据 TXD 4脚: 数据终端准备好 DTR 5脚: 信号地 SG 6脚: 数据准备好 DSR 7脚: 请求发送 RTS 8脚: 清除发送 CTS 9脚: 振铃提示 RI 3.3.2.2.电气特性   EIA-RS-232C 对电器特性、逻辑电平和各种信号线功能都作了规定。   在TxD和RxD上:   逻辑1(MARK)=-3V~-15V   逻辑0(SPACE)=+3~+15V   在RTS、CTS、DSR、DTR和DCD等控制线上:   信号有效(接通,ON状态,正电压)=+3V~+15V   信号无效(断开,OFF状态,负电压)=-3V~-15V   以上规定说明了RS-323C标准对逻辑电平的定义。对于数据(信息码):逻辑“1”(传号)的电平低于-3V,逻辑“0”(空号)的电平高于+3V;对于控制信号;接通状态(ON)即信号有效的电平高于+3V,断开状态(OFF)即信号无效的电平低于-3V,也就是当传输电平的绝对值大于3V时,电路可以有效地检查出来,介于-3~+3V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义,因此,实际工作时,应保证电平在±(3~15)V之间。 EIA RS-232C 与TTL转换:EIA RS-232C 是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIA RS-232C 与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。目前较为广泛地使用集成电路转换器件,如MC1488、SN75150芯片可完成TTL电平到EIA电平的转换,而MC1489、SN75154可实现EIA电平到TTL电平的转换。MAX232芯片可完成TTL←→EIA双向电平转换。 3.4 按键控制模块 S1: S2: S3: S4: 3.5 LED 显示模块 四、软件设计分析 软件由主模块、USB模块、BULK模块、FAT模块和中断处理模块组成。各模块之间相互协调调用,共同完成对U盘文件的读写创建。 4.1 软件系统模块 1 进入USB主机模式,要读/写U盘,必须先设置CH375使其工作于USB主机方式。 ② 将U盘当作存储器进行读/写,方法与读/写闪存差不多,操作简单且速度快。单片机读/写U盘文件程序分层如图所示 图3 单片机读/写U盘文件程序分层图     USB模块负责检测USB设备的移入/移出,对插入的设备进行枚举,分配设备地址端点号,配置设备接口端点描述符,建立BULK_ONLY输入/输出通道,BULK模块则在已建立的BULK_ONLY输入/输出通道发送CBW数据包,并接收CSW数据包,通过CBW中嵌入的CBWCB信息确定对U盘读/写操作的扇区位置和大小,FAT模块主要完成簇和扇区间的索引定位,即在U盘内寻址,利用BPB中的参数计算给定扇区的所在簇以及进入休眠状态,等待外部中断唤醒。 中断处理模块是在中断唤醒后根据中断类型进入不同功能子模块的,也是整个软件系统的核心部分。中断模块接收到串口或并口数据后,根据内部命令字要求进行解析,命令字要求如图5所示,并口数据接收流程如图所示。 图4 软件设计流程图 图18 UFI结构 图19 命令与数据字结构 4.2主模块 4.2.1单片机读写U盘文件(USB 存储设备的文件级接口) 图10 单片机读写U盘文件 一般情况下,单片机或嵌入式系统处理USB 存储设备的文件系统需要实现上图左边的4个层次,右边是USB 存储设备的内部结构层次。由于CH375 不仅是一个通用的USB-HOST 硬件接口芯片,还内置了相关的固件程序,包含了上图左边的3 个层次(标为灰色部分),所以实际的单片机程序只需要处理FAT 文件系统层,并且即使这一层也可以由CH375 的U 盘文件级子程序库实现。 如果不需要处理文件系统,也就是不处理上图左边的最顶层,那么CH375 直接提供了数据块的读写接口,以512字节的物理扇区为基本读写单位,从而将USB存储设备简化为一种外部数据存储器,单片机可以自由读写USB 存储设备中的数据,也可以自由定义其数据结构。 由于计算机将USB 存储设备组织为文件系统,为了方便单片机通过USB移动存储设备与计算机之间交换数据,单片机也可以将USB 存储设备组织为文件系统,也就是处理上图左边的最顶层。 4.2.2 本地端的单片机软件 CH375芯片占用两个地址位,当A0 引脚为高电平时选择命令端口,可以写入命令;当A0引脚为低电平时选择数据端口,可以读写数据。 单片机通过8 位并口对CH375 芯片进行读写,所有操作都是由一个命令码、若干个输入数据和若干个输出数据组成,部分命令不需要输入数据,部分命令没有输出数据。命令操作步骤如下: ①、 在A0=1 时向命令端口写入命令代码; ②、 如果该命令具有输入数据,则在A0=0 时依次写入输入数据,每次一个字节; ③、 如果该命令具有输出数据,则在A0=0 时依次读取输出数据,每次一个字节; ④、 命令完成,可以暂停或者转到①继续执行下一个命令。 CH375芯片专门用于处理USB 通讯,在检测到USB 总线的状态变化时或者命令执行完成后,CH375以中断方式通知单片机进行处理。 4.2.2.1绝对最大值 (临界或者超过绝对最大值将可能导致芯片工作不正常甚至损坏) 4.2.2.2电气参数 (测试条件:TA=25℃,VCC=5V,不包括连接USB 总线的引脚) (如果电源电压为3.3V,则表中所有电流参数需要乘以40%的系数) 注:ACT#引脚的低电平吸入电流为4mA,高电平输出电流为200uA。 在CH375 芯片复位期间INT#引脚和TXD 引脚只能提供80uA 的高电平输出电流。 4.2.2.3 时序参数 (测试条件:TA=25℃,VCC=5V 或者VCC=V3=3.3V,参考附图) (RD 是指RD#信号有效并且CS#信号有效,RD#=CS#=0 执行读操作) (WR 是指WR#信号有效并且CS#信号有效,WR#=CS#=0 执行写操作) (适用于CH375A;如果是CH375S,那么TE0=TSX=TSC=TCC=2.5uS,TSD=TCD=1.5uS) 图7 为了使上位PC机能够直接读取该读写器写入U盘的数据,数据存储按照FAT32文件管理方式存储,其中涉及USB和UFI协议以及FAT32文件存储格式。 4.3 USB模块 4.3.2 USB协议 USB(通用串行总线)用于将USB接口的外围设备(device)连接到主机(host),实现二者之间数据传输的外部总线结构,是一种快速、灵活的总线接口,USB的传输类型有控制(control)、批量(bulk)、中断(interrupt)和同步(synchronous)传输4种,它最大的特点是易于使用,即插即用,主要是用在中速和低速的外设。     控制数据用于在USB接入总线时对其进行配置,其他的驱动软件可以根据具体的应用来选择使用控制传输,这种数据传输不会丢失数据。     典型的批量数据包括象使用打印机或扫描仪时所出现的大数据量的数据,这种批量数据是连续的,通过在硬件中实现差错检测功能,并且有选择地进行一定的应进重试操作,可以在硬件层次上保证数据的可靠交换。     由设备自发产生的数据传输是中断数据传输,这类数据传输可以由USB设备在任意时刻发起,而且USB总线以不低于设备说明的速率进行传输。 同步数据在产生、传送和处理过程中是连续的和实时的,在稳定的同步数据发送和接收速率中包含了相应的时钟信息,为了保持定时关系,同步数据必须按照接收的速率进行传输。 4.4 BULK模块 4.4.2 BULK_ONLY和UFI协议 USB设备分为5大类,即显示器、通信设备、音频设备、人机输入和海量存储。通常所用的U盘、移动硬盘均属于海量存储类。海量存储类的规范中包括4个独立的子规范,即CBI传输、Bulk-Only传输、ATA命令块、UFI命令规范。前两个协议定义了数据/命令/状态在USB总线上的传输方法,Bulk-Only传输协议仅仅使用Bulk端点传送数据/命令/状态,CBI传输协议则使用Control/bulk/interrupt三种类型的端点进行数据/命令/状态的传送。后两个协议定义了存储介质的操作命令,ATA协议用于硬盘,UFI协议则针对USB移动存储,U盘读写器的设计遵循Bulk-Only传输协议和UFI命令规范。UFI命令块规范是针对USB移动存储而制定的,它总共定义了19个12字节长度的操作命令。     Bulk-Only事务以主机向设备发送CBW(Command Block Warp)包,并以建立相应的数据传输开始的,设备接收到CBW包,检查并解释它,试图满足主机的要求,并通过CSW(Command State Wrap)包向主机返回状态信息。     CBW是主机通过Bulk-Out端点向设备发送的命令块包,在CBW中使用方向位和数据传输长度域指明期待的传输,CBW必须起始于包边界,并且必须以31字节的短包传输结束,相继的数据包和CSW包必须开始于一个新的包边界,所有的CBW包必须按低字节在前的次序传输。     CBW包结构如图16所示,各域含义如下: 图16 CBW包结构如图 1)命令块包标识。CBW包标记,表明这是一个CBW包,这个域的值为43425355H。 2)命令块标记。当设备返回相应的CSW包时,必须使命令状态标记域的值与此值相同。 3)数据传输长度。指明命令执行期间在Bulk端点上传数据的字节长度,如果这个域的值是0,则在CBW和CSW之间设备和主机不传输任何数据,并且设备将忽略在命令块标旗域中的方向位的值。 4)命令块标旗。方向位规定了Bulk端点数据传输的方向,其他位预留。 5)逻辑单元号。指定命令块被发送到的逻辑单元号,如果设备不支持多个逻辑单元号,则主机将这个域设置为0。 6)CBWCB长度,定义了CBWCB的有效长度,合法值为1-16。 7)CBWCB。由设备执行的命令,由设备解释。     CSW向主机表明来自于CBW包的命令块的执行状态。设备收到CBW包解析处理后将通过Bulk-In端点发送一个CSW包。     CSW开始于包边界,并以13字节的短包结束,结构如图17所示,各域含义如下:  图 17 命令状态包结构 1)命令状态包标识。CSW包的标记,表明这是一个CSW包,这个域的值为53425355H。 2)命令状态标记。次域的值域CBW包的命令块标记相同。 3)数据残余。实际数据传输量与CBW包中规定的数据传输长度的差值。 4)命令执行状态,表明命令成功或失败信息,如果命令执行成功,则设备将设置此域的值为0,非0值;则表明失败或错误。     UFI是针对USB移动存储而制定的命令块协议,它规定了主机和设备进行信息交换所使用的命令块、数据和状态信息,Bulk-Only传输协议定义了传输这些信息的方法,其中UFI命令块是封装在CBW包中的CBWCB,设备通过读取CBWCB确定具体要执行何种操作命令(如读命令),如何完成这个命令(如从闪存的哪个地址读,需要读取的长度),设备将命令的执行状态封装成CSW返回给主机。     UFI用于大多数命令的12字节命令块的描述,结构如图4所示,其中各参数意义如下: 1)操作命令代码。指明所需要执行的操作命令; 2)逻辑单元号。指明命令将发送到哪个逻辑单元,如果设备只有一个逻辑单元,则此域的值为0。 3)逻辑块地址。命令操作的起始地址。 4)传输长度,指明请求传输的数据量,通常以"扇区"作单位,但是有几个命令是以"字节"作单位的,对于这些命令,传输长度域可以以不同的名字标识,若此域的值为0,则表面没有数据需要传输。 5)参数列表长度,用于指定发送到设备的字节数,这个域典型的应用于发送到设备的参数命令块(如模式参数、诊断参数等),若此域的值为0,则表面没有数据需要传输。 6)分配长度,指明主机已经分配的用于返回数据的最大字节长度,若此值为0,则表明没有数据需要传输。 4.5 FAT模块 4.5.2 FAT32     FAT是Microsoft较早推出的文件系统,具有高度的兼容性,目前仍然广泛应用于个人电脑尤其是移动存储设备中,FAT由引导扇区、FAT1表、FAT2表、目录和文件区组成(其中FAT2表是FAT1表的备份)。磁盘的管理是以扇区为单位的,而移动存储设备则是以块为单位的,FAT将块映射成扇区,原理相同,FAT将磁盘空间以一定数目的扇区为单位进行划分,这样的单位成为"簇"。通常情况下,每扇区512字节的原则是不变的,簇的大小一般是
/
本文档为【基于单片机和CH375的U盘读写控制器设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索