基于STC90C516单片机和CH376的简易电子书阅读器设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于STC90C516AD单片机和CH376的简易电子书阅读器设计
摘要:随着嵌入式技术的飞速发展,许多小型电子产品开始逐渐替代传统的生活用品。

电子书阅读器的出现就是图书信息的承载和阅读方式的巨大革新。

本文基于STC90C516AD单片机和CH376,设计可以阅览文本文件的简易电子书阅读器。

它可以正确识别存储在SD卡和U盘中的文本文件,并通过液晶屏浏览其中的内容。

关键词:STC90C516AD;CH376;SD卡;U盘;电子书
Design of the easy e-book reader based on
STC90C516AD and CH376
Abstract: With the development of embedded technology, many small electronic products gradually began to replace traditional living supplies. The emergence of
e-book reader is a great renovation of books information bearing and reading way. This paper, based on STC90C516AD and CH376, designs an easy e-book reader. It can recognize TXT files stored in the SD and U disk. Users can read the txt type files through crystal display.
Key words: STC90C516AD;CH376;SD memory card;U disk;e-book
引言
电子书和纸介质的书籍相比,容量大,体积小,重量轻,内容更新容易,使用方便,阅读方式与传统图书接近。

因此,电子书已经逐步被人们接受和喜爱,[1]。

51单片机具有低功耗、体积小、而电子书阅读器一定会具有特殊的发展前景[2]。

U盘和功能强大且成本低而得到广泛的应用SD卡是一种基于闪存和半导体快闪记忆器的移动存储产品。

它们体积小、容量大、工作性能可靠,因此被广泛[3]。

目前大多数的单片机都没有任何USB接口,有些单应用于嵌入式存储领域中[4]。

USB主机主机接口的单片机很少设备接口,但配备USB/设片机配备了USB备接口控制芯片如SL811、PB375A、CH37系列的出现弥补了这一不足。

而南京沁恒公司的CH376芯片,进一步集成了文件管理层,还增加了对SD卡的支持,功能更强大。

1 相关芯片
1.1STC90C516AD
低功耗的单/高速/单片机是宏晶科技推出的新一代超强抗干扰STC90C516AD.
片机,指令代码完全兼容传统的8051单片机,12时钟/周期和6时钟/周期可以任意选择。

芯片内置了64KB的FLASH,4352字节的RAM。

工作频率范围0~40MHz,共有输入输出引脚32个,有EEPROM功能,看门狗功能。

芯片内部集成MAX810
专用复位电路,共有3个16位定时器/计数器,其中定时器0还可以当成2个
8[5]。

转换10位A/D位定时器使用;外部中断4路,8路STC90C516AD单片机芯片性价比非常高,但是芯片内部并没有USB主机功能,需要借助扩展芯片实现。

1.2CH376
CH376是南京沁恒公司生产的文件管理控制芯片,支持USB主机方式和USB设备方式,内置了USB通讯协议的基本固件,内置了FAT32文件系统的管理固件,支持常用的USB存储设备(U盘/USB硬盘/USB闪存盘/USB读卡器)和SD卡(包[6]。

TF卡)卡和高容量HC-SD卡以及兼容的MMC卡和括标准容量SDCH376支
持三种通讯接口:8位并口、SPI接口或者异步串口,单片机可以使用任意一种接口控制CH376芯片。

2阅读器硬件设计
阅读器由单片机STC90C516AD、U盘SD卡控制芯片CH376、320240液晶显示屏、键盘和供电电源组成,各部分电路均采用模块化设计。

系统框图如图1所示。

STC90C516AD320240键盘液晶CH376U盘或SD卡
1 系统框图图电子书存放在U盘或者SD卡上,STC90C516单片机通过CH376读取出里面的电子书信息,用键盘选择电子书显示在5.7寸液晶显示屏上。

CH376与单片机通过SPI总线连接,STC90C516AD没有硬件SPI接口,要用软件模拟。

320240液晶屏的数据口接到P0。

考虑到单片机I/O资源不丰富,综合考虑系统需求键盘部分使用4个独立按键,最大程度简化硬件和程序设计。

I/O分配如表1所示。

表1 I/O口分配
接口设备占用I/O
接口设备占用I/O
P0 SCS
P1.4 DATA
P2.0 P1.5 RS SDI CH375芯片P2.1 P1.6 SDO WR 液晶屏320240P2.2 RD SCK P1.7
P2.3 K1
CS1 P1.0
P2.4 P1.1 K2 RST 键盘P1.3
K4
P1.2
K3
键盘STC90C516AD同步串行接口与SPI使用CH376资源不丰富,I/O考虑到单片机
进行通讯,相关引脚连接方式如表1所示。

SPI操作步骤如下:
a)STC90C516AD产生CH376芯片的SPI片选,低电平有效;
b)STC90C516AD按SPI输出方式发出一个字节的数据,CH376总是将SCS有效后接收到的首个字节当做命令码,后续字节当做数据;
c)如果是写操作,STC90C516AD向CH376发出一个字节的待写数据,等待SPI
接口空闲后,STC90C516AD继续发出若干个待写的数据,直到SPI片选被禁止;
d)如果是读操作,STC90C516AD从CH376接受一个字节的数据,等待SPI接口
空闲后,STC90C516AD继续接受若干个字节的数据,直到SPI片选被禁止;
e)STC90C516AD禁止CH376的SPI片选,接受当前SPI操作。

3阅读器软件设计
3.1阅读器总体软件设计
图2是STC90C516AD通过CH376对U盘或SD卡设备进行识别,并进行相关操
作的软件流程图。

系统运行后,首先会检测U盘或者SD卡有无连接,然后自动查找设备中的TXT文件,并在液晶屏上显示文件名等相应信息。

然后通过键盘的翻页键K3、K4选择要显示的文件,按确认键K1后系统会对文件内容进行显示,再通过翻页键翻下一页或上一页,文件显示完毕后系统自动返回到选择文件画面,显示文件内容的时候按返回键K2亦可以返回到选择文件画面。

开US设备已就绪选择文件N打开文件成功?YY读取并显示数据N返回键按下N翻页键按下NY文件到末尾Y结束软件流程图图2
3.2电子书存储读取原理
本阅读器读取的电子书来源于U盘或SD卡,而U盘或SD卡主要使用FAT32文
件系统。

FAT为“File Allocation Table”的英文缩写,意为文件配置表,“32”文
件系统的“簇”表示一FAT32个比特位来寻址。

32表示每一个簇的簇号都用.
个文件在存储空间所占的最小量化存储空间。

一个文件占用的簇空间余下的部分,其他文件不能继续使用。

每一簇的实际大小根据存储介质的总容量等因素决[7]。

图3给出FAT32文件系统的磁盘组织结构。


FAT1
FAT2
根目录与数据区保留扇区MBR区DBR区
图3 FAT32文件系统磁盘组织结构图
保留扇区,位于最开始的位置。

第一个保留扇区是MBR区(主引导区)。

它记录了第一磁盘分区的入口和剩余磁盘分区的入口信息、第一磁盘分区的大小和起始扇区号。

一般U盘或者SD卡都只有一个分区。

DBR区,即DOS引导记录扇区,它主要记录了文件系统标志、每扇区字节数、每簇扇区数、保留扇区数、FAT[8]。

FAT32表数、根目录第一簇等重要信息文件系统的数据区和根目录区是不严格区分的,即将根目录等同于普通的文件,根目录内包含文件名、大小、起始簇号等信息。

同一个文件的数据并不一定完整地存放在磁盘的一个连续的区域内,而往往会分成若干段,像一条链子一样存放。

这种存储方式称为文件的链式存储。

由于磁盘上保存着段与段之间的连接信息(即FAT表),操作系统在读取文件时,总是能够准确地找到各段的位置并正确读出。

为了实现文件的链式存储,磁盘上必须准确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号。

对一个文件的最后一簇,则要指明本簇无后继簇。

这些都是由FAT表来保存的,表中有很多表项,每项记录一个簇的信息,FAT32中以4个字
节为单位作为一个表项。

FAT32的文件查找过程主要涉及到FAT表和数据区。

以a.txt为例,首先根据DBR 的信息找到根目录所在簇,然后在根目录找到a.txt的目录项,获得a.txt的起始簇号。

然后在FAT表中找到相对应的记录,上面登记的是存储a.txt后继内容的
下一簇的簇号,就这样一直查找下去,直到登记的簇号是FFFF,表示到达尾簇,查找过程如图4所示。

假设从目录区中读取到a.txt的首簇是3FA T表数据区
簇25簇3a.txt数据的位置3簇簇420簇55簇的位置a.txt数据簇6......21簇20的位置20簇a.txt数据FFFF数据a.txt21簇簇21的位置22簇23簇24簇
文件系统文件查找过程图4 FAT323.3阅读器涉及到的CH376主要命令组合
1.CH376初始化
1.1CMD_CHECK_EXIST命令,检查CH376是否正确工作;
工作模式;USB命令,设置CMD_SET_USB_MODE1.2.
1.3由CH376自动检测U盘连接或者由单片机发送CMD_DISK_CONNECT命令定期查询(SD卡不支持自动检测);
1.4CMD_DISK_MOUNT命令,初始化USB设备,并测试是否就绪。

2.读取特定文件数据
2.1CMD_SET_FILE_NAME命令+CMD_FILE_OPEN命令,打开文件;
2.2多次CMD_BYTE_READ命令+CMD_RD_USB_DATA0命令+CMD_BYTE_READ_GO 命令,读取数据;
2.3CMD_FILE_CLOSE命令,关闭文件。

4结束语
本文以STC90C516AD为核心,使用USB控制芯片CH376,对简易电子书阅读器进行设计。

该阅读器可以正确查找存储在U盘或者SD卡上面的文件,可以在5.7寸320240液晶屏上显示TXT文件,支持中英文,支持长文件名显示,可以手动翻页。

CH376提供的U盘文件级程序库,使用起来更为方便,大大提高了程序编写效率。

该阅读器的不足之处在于仅支持显示TXT文件的内容,需要在后续的开发中进行功能扩展。

参考文献:
[1] 陈波.基于uC/OS-II的电子书阅读器的设计与实现[D].武汉:华中科技大学,2007.
[2] 宫鹏,宫玥,山柄强.基于ARM7与SD卡的文件存储和文本阅览系统[J].青岛大学学报工程技术版,2010,25(3):10-13.
[3] SanDisk Corporation.SD Memory Card Specifications[M].America:SanDisk Corporation,2006.
[4] 戴丽莉,杨学深,张春喜.基于STM32F103的USB主机接口设计[J].信息技术,2010,12:168-170.
[5] 宏晶科技有限公司.STC90C58AD说明文档[M].深圳:宏晶科技有限公司,2005.
[6] 南京沁恒电子有限公司.CH376中文数据手册[M].南京:南京沁恒电子有限公司,2010.
[7] 邹胜武,吕云飞,孙大军.数据存储系统FAT32文件格式软件设计[J].应用科技,2010,37(5):46-48.
[8] 吕继函,范多旺,邢东峰.基于芯片CH375的移动数据采集系统[J].黑龙江科技信息,2010,16:97-98.
2008.
北京:电子工业出版社,[M].语言教程C单片机.51郭天祥[9]。

相关文档
最新文档