《自动化与仪器仪表》 20 07 年第 4 期(总第 132 期 )
基于C H 37 5的单片机u 盘控制器的
与实现
邓清涛 , 杨 鹏
(重庆大学自动化学院 重庆 , 中以)044
摘 要 : 介绍了一种以USB 接口芯片田375和单片机为核心 , U盘为存储介质的数据存储
, 给出了
系统硬件实现和单片机读写U盘的应用程序 。 实验结果表明, 该方案具有成荆氏、 通用性强 、 可靠性高等
特点, 可方便地集成到各种测控系统中。
关键词 : 田375 ; USB ; 单片机 ; U盘
A b 如旧e 七 T hi s paP er
~ du
ce a d a妞 sto 口罗 se hem e 俪th th e 任书h dis k as th e sto ra 罗 m edi a , w hi c h the U sB
谊te面c e chi p C川75 and 肠clo Co ntro ner U ni t 15 core , the 玩Lre嘛牡e 1111p lem e n o ti o n of sys tem an d 叩p石cati o n
p m 多翅11 w hi eh 入五CrO C 0 n加ller U ni t re ad an d y 切口te the 几as h dis k 眼 谊Chi d e d厂几e res ul 朽 of exP e n lr le nt sh ow th a t
the
sc hem e fea tu res lo w
Cos ts
,
stro ng
u
niv
e
lsal
, 即。d rellab ili ty an d tha te chn 0 1o gy can be eas 勿 访卿笋此d mto
由玉比 n t tes助 g and co n tro ha 喀邓tem
.
旋y wo 找如 : CH3 7 5; U SB ; 入五溯 C o n tr o lle r U ni t; U S B 且韶h dis k
中图分类号: 尸件忍33 . 2 文献标识码 : B 文章编号 : 1田1刁丝7 º 刀7)例代刀15代抖
O 引 言
近年来 , USB技术因其自身的优点 , 在各个领域得
到广泛应用 。 其接 口技术主要分为璐任日诱花似犯设
备 )和 US珍刊万T (USB 主机 ) 。 根据其
的规范 , 在
USB的拓扑结构当中, 居于核心地位的是USB 主机 , 每
次数据的传输都是由主机发起和控制 〔l] 。 当前具有
USB 接口的设备 , 大多使用 USB SI 盛VE 技术 , 配合此机
使用 , 咒机作为USB主机。 而在传统的单片机系统中 ,
并没有USB 主机。 为此 , 本文针对使用USB S以VE 技术
的U盘 , 说明如何在单片机系统中利用田375对其进行
操作 。
果是与51 系列单片机相连 , 由于单片机本身的速度较
慢 , 韶75 反而是最快的。 最终 , 从系统要求与开发的
2 人力成本和经济成本考虑 , 本系统选择田375作为
’
usB 主控芯片
。 ‘
1 系统硬件设计
1
.
1 USB接口芯片选择
USB接口芯片种类繁多 , 其中 , 具有代表性的有
CyP r e s s公司的 S货 1IHS , Ph i li p s公司的 ISP ll6 1A , 国
内则以沁恒公司的田375系列为代表 。 这些芯片各有优
点 , 适合不同的场合 。 如 ISP ll6 1A 支持USB协议 2. 0 ,
而 S比n 可支持多种 USB设备 , 田375则将 USB 协议 、
麒路一S双巩昵E协议 、 以万1协议都集成到了片内, 可以直
接对U盘的扇区进行读写 , 另外厂家还提供U盘文件系
统操作库 , 这使得面向U盘等设备的开发变得更便捷。
至于传输速度 , 理论上S叨11HS 比川375快 , 但是
前者需要更多的外部程序 , 要提高速度并不容易 , 如
收稿日期 : 20 0 7一 0 4 一 1 0
1
.
2 CH375简介
川375是一种通用的璐B总线接 口芯片 , 支持璐于
味万T方式和 USf 卜班W ICI 酬Sl 乃VE 方式 仪, 。 在本地端 ,
哪75 具有8位数据总线和读、 写 、 片选控制线以及中断输出 , 可以方便地挂接到单片机等控制器的系统总
线上 。
田375芯片内部集成了刊工倍频器 、 主从USB 接口
SI E
、 数据缓冲区、 被动并行接口 、 异步串行接口 、 命
令解释器 、 控制传输的协议处理器 、 通用的固件程序
等 。 PLL 倍频器用于将外部输入的 13伯z时钟倍频到
硬腼12 , 作为璐B接口 SIE 时钟 ; 主从USB接 口用于完成
物理的USB 数据接收和发送 ; 数据缓冲区用于缓冲
USB接口S IE 收发的数据 ; 被动并行接口与异步串行接
口用于与外部单片机交换数据 ; 命令解释器用于分析
并执行外部单片机提交的各种命令 ; 控制传输的协议
处理器用于自动处理常用的控制传输的多个阶段 , 简
化外部固件编程 ; 通用的固件程序则是实现了!JSB的相
关协议 。
1
.
3 单片机与CH 375 的接口设计
Q1375 与单片机的连接方式有并口和串口两种方
式。 相对于串口连接 , 并口传输速度更快 , 但是所需
要的外部RAM也更多, 对于大多数51 系列单片机 , 需进
15
基于C H 37S 的单片机u 盘控制器的设计与实现 邓清涛 , 等
行外部RAM的扩展 ; 串口连接则不用扩展外部RAM, 但
只能用于传输速度要求不高的场合 。 本系统采用的是
并口连接方式 , 其硬件接口原理图见图1 。
图中叱75 的灿引脚通过 1K左右的下拉电阻接地
或直接接地 , 从而使Q1375工作于并口方式 。 数据线
加 ~ D7 , 读写控制线-即 , 柳R分别与单片机相对应的引
脚相连 。 单片机地址线A14 与田375的A0 相连接 , 由此
可以看出, 能75 只占用两个地址 。 单片机与其它芯片
的连接可以参考相关资料 , 本文不再累述。
为了提高系统的抗干扰性 , 璐B插座的5V 电源须与
0 1375和单片机的电源独立 , 以免U盘接入时存在的电
容充电过程影响0 1375和单片机 。 同时必须对电源退
藕 , 电容肠用于田375内部电源节点去藕 , 其容量为
1溯PF 到0 . 01 p F, 巴和C7 用于外部电源去藕 , 容量分别取 1的 p F和0. 1 p F 。 为使CH375 可靠复位 , 电源电压
从 0v 上升到 5V 的上升时间应该少于 1呱ns , 所以在
咫Tl引脚与V CC之间接一个容量为0 . 5 p F的电容延长复
位时间。
邓I八JFI/ RI犯命令传输及以T文件系统等功能〔3 , 。
但是对于施5 5 一 St o r ag e海量存储设备 , 田375内置
了USB通信协议的固件 , 并提供U盘文件级子程序库 ,
单片机可以直接调用子程序读写U盘的文件数据 , 简化
了开发流程。 下面主要通过软件的工作流程来说明设
计过程。 其流程图见图2 。
2 系统软件设计
一般来说 , 在单片机下开发U盘的读写系统 , 外部
单片机需要编写驱动程序 , 会涉及较多的协议 , 从底
层到上层必须实现 USB 的控制传输、 USB 批量传输 、
等等待CH 3 7 5对对
UUU盘进行配置置
初初始化单片机机
及及CH 3 7 555
等等待中断断
创创建或打开文件件
对对文件进行行
读读写等操作作
对对 U盘进行复位位
图2 主毛游流程图
己己己己己己己己己己己己己己己己己它 V C CCCCC 己亡1 V D DDD
VVV CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC LEEEEE CE ZZZ
PPPO
.
CCC一卫坦 月月入 ((( . PO 0 00000 闪性性
XXX TA LI P0
.
1111111111111111111111111111111 { p 1 0 11111 沈沈
XXX TA LZ P0
.
222
一
J 亘 _月月卜 I _ iii{ 9 2 0 22222 A O D Q OOO
户户0 . 二二二二二二二二二二二二二二二二 } p 3 0 33333 A 1 D O III
PPP0
.
444 J b 刀刀入 氏111} 9 4 0 44444 AZ D Q ZZZ
户户0 . 三三三三三三三三三三三三三三三三 } 9 5 0 55555 A 3 D Q 333
PPPO
. 〔〔}为巨 月月入 1走走} p旦 0 66666 A 4 D O 444
PPPO
一
7777777777777777777777777777777 ⋯。7 _ 。7777777777777 A S D O SSS
RRR S TTT }J 4 月月卜 1生生} G N DDD 门11111 A 6 D O 666
亡亡入IV PP Pl . CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC A 7 D Q 777
:::
p甘亡N Pl . 111〕 J 月月入 1白白白 一月11111 A 888
AAA LE P1 2222222222222222222222222222222222222222222 A 999
户户, . 333 .〕 试 月月入 1址 {{{{{ -月11111 A 1 000
PPP 1
.
4444444444444444444444444444444444444444444 A l lll
RRR X D Pl
.
555奎奎奎奎奎奎奎奎奎奎 A 1 222TTTTTTTTTTTTT x D Pl . 〔〔卫1 A SSSSS } G N DDD___ .N器器 1闪冲O 户1 . 77777777777777777777777777711111祠, ,,,,,,,,, 一0 0 v e eeeeeeeeeeeeeeeeeeeTTTTT O PZ . CCCCC 卜 _ 1艾艾 . p lll 999 {}}}}}}}TTTTT l P2 . 11111111111111111 { 9 2 V 33333333333刃刃刃决 户2 . 二二二 入 1丈丈 } p 3 _ ___________
只只只只只只只b 户2 . 33333333333333333 } D 4 T X DDDDDDDDDDDDDDDDDDD
艾艾艾艾 P2 . 44444 入 1互{{{} ps G N ppp l厂厂厂厂户户户户户户户2 . 55555555555555555 { D 6 G N DDD 5555555咙咙咙 P2 . 〔〔〔 入 1显显 { D 777777777
······
V S S P2
.
77777777777777777 } 四 -------------------------------
入入入入 _ _ 碑幻、、 } 丛p U D +++ 1ZZZ
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{皿皿皿皿皿皿皿皿
入入入入 洲工工 W R R S T III 1333
亡亡亡亡亡亡亡亡亡亡亡亡亡亡亡亡亡右 R S TTTTTTTTTTTTTTTTTTTTTTT
以以以场 A l((((( 入 2硫硫 仆洲. 找若下下下 · 111
,,,,,,,,,,,,,,,,
R X O X OOOOO
·
222
一一H U I艺艺艺艺艺艺艺艺艺艺艺 · 不乙丫 X IIIII · 333LLLLLLL‘属砰 A l ,,,,, · 444
44444 义b A l二二二二 1UUUUU
涅涅涅6 A l乏乏乏乏乏乏
图l 系统硬件电路图
《自动化与仪器仪表》 2 00 7 年第 4 期(总第 130 期)
2
.
1 系统初始化
系统初始化包括单片机的初始化和川375的初始
化 。 单片机的初始化主要是完成外部中断D汀0 、 I/0 口
等的初始化 , 程序较为简单 , 此处省略。 侧375的初始化
则主要是使用沁恒公司提供的库0 1375H以 . LIB 中的函数
in t CH3 75L ib ln i
t O来完成的 , 该函数主要功能是复位
设备 , 设定田375工作于USB 主模式 , 并设定田375自动
检测设备的连接。
2
.
2 设备检测
设备插入时 , 田375 会以中断方式
单片机 , 单
片机收到中断后 , 可以做相应处理 。 接着田375内置的
固件程序将完成对U盘的配置 , 首先是获得设备描述
符 , 以判别设备是哪一类设备 , 此时USB设备默认地址
为0 , 通信采用控制传输 。 接下来主机对略B设备分配
地址 , 地址从地址值为l到7日1可根据系统需要任意选
择 , 在以后与璐B设备通信时就用此地址 。 然后获取有
关设备配置的描述符 , 获取此描述符要进行两次请
求 , 第一次是试探性的 , 以便得到相关数据的具体长
度 , 第二次才返回接口以及端点的全部信息 〔4] 。 最后
按照得到的数据对璐B设备进行正确的配置 , 至此
USB 枚举过程结束
。
2.3 文件操作
(1) 相关协议
U盘属于施5 5一to r ag e类 , 采用Bu lk--(姐ly传输协
议 , 子类采用UF I等命令集 阁 , 当U盘枚举成功后 , 主
机与璐B设备就可以通过 Bu lk代b ly传输方式传输数
据 , 所有的通信数据都通过现试一IN和段几K以 ]T端点传
输 。 在这种传输方式下 , 有印W、 6 W和普通数据三种
类型的数据在USB和设备之间传送 。 而岌S工命块包含在
CBw中的最后 16 个字节中 , U盘设备可以从中提取并执
行 , 并返回执行的状态给主机。
哪75 内置了S“工命名集的相关固件 , 并提供了相应接口给用户使用 , 用户可以在此基础上以扇区方式
实现对U盘的操作 ; 当然 , 也可用实现队T文件系统 ,
以文件的方式实现对U盘的操作 , 由于私T文件系统的
实现比较复杂 , 所以沁恒公司提供了相应的库 , 该库
也是 以 义5 1命 名集为基 础建 立 的 , 其可 以支持
FAI
,
12/ F/ 汀16 / Fj 订3 2 。 本系统直接使用U盘子程序库实现
操作 。
(2 ) 文件的建立和打开
文件的建立和打开都需要先指定路径 , 路径的指
定方式如下所示 :
5 t r C Py (m C m d p
a r a m
.
O P e n
.
m p a t h N a m e
,
“
\\CS I\\C H3 75 HFT
.
C’’ ) , 需要注意的是路径的长
度不能大于W送夕盯比球卜1个字符 , 文件名的格式则遵
循微软的8 . 3格式 。 其中嵌骊护岔舰是一个O田 卿曲锄类
型的结构 , 该结构的详细定义可以见哪7日苍议. H头文
件 。
设定好路径后 , 就可以创建或打开文件了, 打开
文件或目录的函数为 : 田375F il 以沙 O , 其操作比较简
单 , 无需做过 多说 明 ; 创建文件的函数为 :
姗75F ll 以扮e a te ( ) , 需要注意的是如果存在同名文件 , 那么该同名文件将首先被删除 , 然后再新建文
件 。 如果不希望已有文件被删除 , 那么应该事先调用
邸75F ll 团详n确认文件不存在后再新建 , 在文件创建成功后 , 文件会自动打开 , 以供读写 。 如果文件打开
或创建失败 , 会返回相应的错误码 , 程序应根据错误
码的类型做相应的处理 。
(3) 文件的读写
文件打开后 , 就可以对文件进行读写等操作了, 在
U盘文件库中 , 对文件读写分为两种模式 : 扇区模式和
字节模式 「司 。 在扇区模式下 , 以扇区为单位对u盘进行
读写操作 , 读写操作比较快 , 但需要额外的数据缓冲
区; 在字节模式下 , 以字节为基本单位对U盘文件进行
读写 , 读写速度较慢 , 不需额外的数据缓冲区 。 本系
统采用扇区方式对文件进行操作。
以扇区方式的写文件的函数为: C H 3 7 5Fu目V ri t已尺(
)
, 该函数向当前已打开文件中写入数据 , 每次写入后
自动移动文件指针 , 第二次调用时将从第一次写入数
据的后面继续写入数据。 示例 :
m Cm dPa r a m
.
Lo e a t e
.
m se e to r o ffs e t二 o x f f fff fff :
/馏动文件指针到文件末尾*/
CH375 File Lo eat e ( ) ; /乍动文件指针 , 以便在原文件的末尾追加数据*/
m Cm dPa r a m. Wr itex m sec tor Co u n t
= 2 ; /坞入 2个
扇区 , 也就是追加lK 字节的数据 */
m Cm dPa 二nL 衍 it或 d 、认加ffe r = 0x0 1姗 ; /循定缓冲区首地址*/
CH375 Filewr ite x ( )
;
/
*以扇区为单位将指定缓冲
区数据写入文件写*/
以扇区方式的读文件的函数为: 邪75F ll eRea dX (
)
, 该函数的使用方法与写文件操作方式类似 , 也需要
指定读取文件的扇区数 , 以及读出数据存放位置的首
地址等 。 具体操作可查询参考文献 [6]
关于U盘的其它操作 , 如U盘容量的查询、 文件的
搜索等 , 可用查询相关
, 在此不做过多的说明。
3 结 论
该系统己经用朗科、 紫光等U盘进行了测试 。 试验
结果表明 , 数据稳定可靠 , 系统能够完成文件的建
立 、 打开、 读写 , 且读写速度最高可达 2(X) 叮S左右 。
且系统能把文件存储为多种格式 , 存储后的数据能够
基于c H 37s 的单片机u 盘控制器的设计与实现 邓清涛 , 等
在支持琳T文件系统的计算机上打开 , 便于系统的分析
与共享。 在此基础上 , 系统可用运用于数据采集、 信
息记录等领域。
目前系统是基于US BI . 1协议的 , 如果要追求更高
的速度 , 可以选用高速的单片机和支持咙B2 . 0的控制
芯片构成系统 , 以提高系统速度 。
参考文献 6
向 前 . 在嵌入式系统中实现对U盘的操作口] . 单片机与嵌
入式系统应用 , 2(X] 5 , 肠- 39
南京沁恒公司 . 侧37 5中文手册 (一 ) [Z〕. 南京 , 2(XH
刘井权 , 王 宪 . 基于单片机的USB接口的设计 田 . 自动化
仪表 , 2(X沁 , 27 À , Z卜31
吴言高. 单片机下直接读写优盘的设计田 . 电子设计应用 ,
2(X) 5
, 2 , l〕} . 102
饭哪q , Iflt e l , Mi e ro s o ft , NEC, Un iver sa l ser i a l bu s
spe e i f ic a t i on Re v i s i on l
,
2(X) l
南京沁恒公司 . USB芯片CH3 75 的评估板说明及应用参考 [2] .
南京 , 2(X H
(上接第2页)
有源式电子互感器和无源式电子互感器中的光纤
信号有区别前者光纤中传输的是数字信号 , 后者是模
拟信号 (经过调制的线偏光) 。
电子式互感器由传感模块 (远端模块 ) 和合并单
元两部分组成。
合并单元是对来自各相传感模块的电流电压信号
进行同步处理供间隔层二次设备使用的装置 。
电子式互感器的二次设备与传统的二次设备区别是取
消了交流模块、 低通滤波模块和AD 转换模块 , 增加了
与合并单元的数字接口 。
合并单元和二次设备间有三种标准的传输协议 :
1压狱沁拱 es s 、 la万1850 飞卜1、 I EC6 185于于2 。 I仪烈犯科一
8为点对点串行通信方式、 工砚6 185 0任卜1为基于以太网
的点对点方式 、 工E伪18 5( 日干2为基于以太网的网络方
式。
I成烈沁科we s的特点是串行点对点方式传输时延确
定 , 可方便地采用插值技术进行同步 , 不需依赖于
C邢 。 工砚6 185于于2的特点是基于网络方式 , 减少接
口 、 便于信号共享 , 但应用了网络交换机 。 使数据同
步的实现变得复杂。 工砚61850的主要特点为分层的概
念、 面向对象的数据建模、 逻辑设备的逻辑节点 、 信
息的自描述 、 基于抽象通信服务接口 椒万1) 的服务映
射、 印仍E等。
电子式互感器在低电压等级上没有优势 : 因为只
有在高电压等级上 , 常规互感器的饱和问题、 绝缘复
杂、 体积庞大等体现得越显著 , 由此造价也越高 , 此
时电子式互感器的优势和经济性才能够得到体现。 一
般说来在 n 0I W及以下应用电子式互感器没有必要 。
目前能够提供从传感模块、 合并单元 、 配套二次
设备的电子式互感器达到实用阶段的国内外厂家有 :
A田 、 SI 刚EN S 、 南瑞继保和南自新宁公司等。 能提供
合并单元的国内厂家更多一些 , 如南瑞科技 、 深圳南
瑞、 四方公司等。
3 结束语
2以万年3月27 日 , 全国首座数字化变电站 n okV 翠
峰数字化变电站在南方电网云南曲靖正式投入运行 ,
经过4个月的考验 , 运行情况良好 。 这是我国电网运行
的一次技术革命 , 也是南方电网公司实施科技创新的
一次重要举措。
云南曲靖翠峰 lro 千伏数字化变电站作为国内第一
个完整意义上的数字化变电站 , 全站数字化技术在很
多方面都具有很强的前瞻性 。 整个变电站电缆沟里无
控制电缆和模拟量传输电缆 , 完全被光纤所替代 。 同
时 , 光电式互感器取代了传统的电磁式互感器 , 从根
本上解决了互感器在电流 、 电压信号在传输到二次设
备和处理过程中所产生的附加误差 , 大大提高了保护
系统、 测量系统和计量系统的准确性 , 充分体现出在
安全哇能 维修成本方面的优势。
数字化变电站是变电站自动化技术的发展方向。
数字化变电站的建设应从生产上的迫切需要出发 , 考
虑技术上 、 管理上的现实可能 , 积极探索 , 稳妥推
进 。
参考文献
黄益庄编著. 变电站综合自动化技术 [M] . 北京 ; 中国电力
出版社 , 2(X刀
杨奇逊 . 变电站综合自动化发展趋势口〕. 中国电机工程
学报 , 1以关1. 16 (3) 145 一 146 . 2
谈苏伟 . 变电站操作控制中心的一种模式口〕. 电力系统自
动化 , 199 7 , 21¼ : 55一 57
任雁铭 , 秦立军 , 杨奇逊 . 变 电站自动化系统中内部通信
内网的研究田 . 电网技术2以X) , 24 (5 )2
吴在军, 胡敏强 . 基于 I 砚6150 标准的变电站自动化系统
研究田 . 电网技术2(XX 〕, 279 (10) :61 币5