释放是什么意思| 凯撒沙拉酱是什么口味| 肾钙化灶是什么意思| 一个h是什么牌子| 玉越戴越亮是什么原因| 艾滋病是什么症状| 经常流眼泪是什么原因| 刘三姐是什么生肖| 副主任医师是什么级别| 额头长痘是因为什么| 心律不齐用什么药| 知了猴什么时候出土| 包皮瘙痒用什么药| 发炎是什么意思| 什么是白癜风| 角化型脚气用什么药膏| 21.75是什么意思| 闭口长什么样子| 持家是什么意思| 身份证x代表什么意思| 种马什么意思| a1微球蛋白偏高说明什么意思| 什么东西能去脸上的斑| 头皮痒用什么洗头好| 680分能上什么大学| 子宫内膜息肉样增生是什么意思| 月经量特别少是什么原因| 痰湿体质吃什么中成药| 3月16日什么星座| 梦见妯娌是什么意思| 职务是什么意思| 黑话是什么意思| cea是什么| 昱读什么| 夏威夷披萨都有什么配料| l表示什么单位| 出库是什么意思| 破相是什么意思| 锁阳有什么功效| 打胰岛素有什么副作用| 汗斑是什么样的图片| 梦见狗熊是什么预兆| 心电图st段改变什么意思| 大便隐血阳性是什么意思| 985是什么| 单独玉米粉能做什么| 湿疹吃什么药| 条件兵是什么意思| 胃窦充血水肿意味着什么| 脚底起泡是什么原因| 父亲节出什么生肖| 胜肽的主要功能是什么| 包皮溃烂是什么原因| 指甲脱层是什么原因| 长黑斑是什么原因引起的| 炒菜用什么油好| 口条是什么| 肺有问题会出现什么症状| 吃什么生血快| 什么方法| 分化是什么意思| 谷氨酰基转移酶低是什么原因| abob白色药片是什么药| 综合能力测试考什么| 淋巴发炎挂什么科| 筋膜炎是什么| 杨公忌日是什么意思| 昆仑玉什么颜色最贵| 阎王叫什么名字| 牙齿上有黑点是什么原因| 脑缺血灶是什么意思| 精忠报国是什么意思| 乐加是什么药| 夏天穿什么鞋| 交媾是什么意思| 鼻塞打喷嚏是什么原因| 路程等于什么| 植物园里有什么| 为什么射出的精子里有淡红色| 什么降血脂效果最好的| 六味地黄丸适合什么人吃| 什么是同比| 高危病变是什么意思| 非萎缩性胃炎什么意思| 心率快是什么原因引起的| 为什么夏天容易拉肚子| 男人右眉毛里有痣代表什么| 笑点低是什么意思| 腱鞘炎是什么引起的| 象代表什么生肖| 刻舟求剑什么意思| 什么牌子的燕麦片最好| 3岁小孩说话结巴是什么原因| 窦性心律不齐是什么| 头位是什么意思| 夏季吃什么水果好| 舌头痛吃什么药好| 猫鼻支是什么症状| 女生的胸长什么样子| 白色代表什么| 膀胱壁增厚毛糙是什么意思| 喝葡萄糖有什么功效与作用| 什么原因引起高血压| 什么是梅花肉| 裸官是什么意思| 英国用什么货币| 老是睡不着觉是什么原因| 农历7月20日是什么星座| 什么充电宝能带上飞机| 鲸鱼属于什么类动物| 背疼是什么原因| 月经是什么| 燥是什么意思| 离殇是什么意思| 易经的易是什么意思| 9月13日是什么星座| 老放屁什么原因| 瑜伽垫什么材质的好| 巽什么意思| 什么牌子的氨糖好| 化疗为什么掉头发| 化验血挂什么科| positive是什么意思| 君子兰的寓意是什么| 堃怎么读什么意思| 人中上窄下宽代表什么| 肝胆挂什么科| 晚上适合喝什么茶| myp是什么意思| 母鸡什么意思| 皮肤变黑是什么原因| 阻力是什么意思| 脑梗吃什么水果| 浅表性胃炎吃什么药效果好| 阿拉是什么意思| 什么是冰丝面料| 白质脱髓鞘是什么病| 快递什么时候上班| 阿达子是什么| 吃什么东西补气血| 耳道炎是什么原因引起的| 大鱼际发青是什么原因| 脾胃不和吃什么中成药| 什么三什么四| 爸爸的哥哥叫什么| 男生一般什么时候停止长高| 梦见两个小男孩是什么意思| 7月属于什么季节| 令坦是对方什么人的尊称| 小仓鼠吃什么| 郫县豆瓣酱能做什么菜| 表虚自汗是什么意思| 泌尿系统感染吃什么消炎药| 乌鸡蛋是什么颜色| 6.30什么星座| 做脑ct对人体有什么危害| 尿酸高挂什么科| 晚上猫叫有什么预兆| 02年是什么生肖| 总胆红素偏高说明什么| 睡觉食管反流什么原因| 什么啤酒劲最大| 口腔溃疡吃什么菜| 脑震荡吃什么药| 阴道炎用什么药最好| 孕妇多吃什么水果比较好| 鱼露是什么味道| 刚刚什么地方地震了| 五心烦热失眠手脚心发热吃什么药| 什么叫声母什么叫韵母| 去医院看膝盖挂什么科| 紫米和黑米有什么区别| 龟头炎用什么药膏好| 送奶奶什么礼物好| 秦朝灭亡后是什么朝代| 讽刺是什么意思| 什么水果补肾| 冬天种什么蔬菜合适| 每次上大便都出血是什么原因| 一年半载是什么意思| 脊椎痛什么原因| 脑溢血有什么后遗症| 什么油最好| 反流性咽喉炎吃什么药| 什么叫护理| 疼痛门诊看什么病| 9点多是什么时辰| 白龙马叫什么名字| 天秤座后面是什么星座| 火险痣是什么意思| 屁股出血是什么原因| 心寒是什么意思| 勾引是什么意思| ab型和b型生的孩子是什么血型| 四川耙耳朵是什么意思| 药剂师是干什么的| 站着说话不腰疼是什么意思| 血脂高有什么症状表现| 肚子疼一般是什么原因| 脚面疼痛什么原因| 枸杞和什么一起泡水喝最好| 鼻头出汗是什么原因| 体型最大的恐龙是什么| 牛大力泡酒有什么功效| 胃暖气是什么症状| 山水不相逢什么意思| 梦见妈妈出轨预示什么意思| 女人阴唇发黑是什么原因| 属龙的五行属性是什么| 电视黑屏是什么原因| 间接胆红素偏高吃什么药| 责成是什么意思| 分子是什么| 松针泡水喝有什么功效| 姑姑和我是什么关系| 中老年人喝什么奶粉好| 贺喜是什么意思| 吝啬的意思是什么| 床榻是什么意思| 什么是痛风| 喉咙痒吃什么药好| 狮子座女和什么座最配| 人流后可以吃什么| aids是什么病的简称| hl是胎儿的什么| 1215是什么星座| 甲状腺囊肿不能吃什么| 什么样的树| 监制是干什么的| 十年什么婚| 买单是什么意思| 儿童办护照需要什么材料| 痛经吃什么药好| 屁股长痘是什么原因| msi是什么比赛| 酒后手麻什么原因| 四书五经是什么| 阳历7月份是什么星座| 肾彩超能查出什么| 收孕妇尿是干什么用的| 打胎用什么药| 铁达时手表什么档次| 5月29日什么星座| 奎宁是什么药| 欣喜若狂的近义词是什么| 星标朋友是什么意思| 开窍是什么意思| 属猪的贵人属相是什么| 百什么争鸣成语| everytime什么意思| 什么茶能去体内湿气| 好女人的标准是什么| 旅行是什么意思| 怀孕吃什么| 角弓反张是什么意思| 腱鞘炎是什么引起的| 晨尿泡沫多是什么原因| 浅表性胃炎吃什么药好使| 大尾巴狼是什么意思| 凶神宜忌是什么意思| 胃不消化吃什么药效果最好| joan是什么意思| mmc是什么意思| 一饿就胃疼什么原因| 百度

新闻中心

EEPW首页 > 测试测量 > 设计应用 > 基于USB总线和89C51单片机的数据采集系统设计

习近平两会“话中画”

作者:武汉理工大学信息学院,张雄希,何嘉斌 时间:2025-08-04 来源:电子设计应用 收藏
摘要:本文介绍了基于USB总线的设备的开发方法,包括硬件设计、firmware(固件)设计、基于windows驱动程序模型(WDM)的设备驱动程序设计以及应用软件的设计,同时也介绍了基于USB的远程系统。

百度 截至记者发稿时,尚未有相关交涉的最新进展。

关键词:

在工业生产和科学技术研究过程的各行业中,常常要对各种数据进行采集,现在常用的采集方式是在PC机或工控机内安装数据采集卡,如A/D卡及RS-422卡、RS-485卡。采集卡不仅安装麻烦,易受机箱内环境的影响,而且由于受计算机插槽数量和地址、中断资源的限制,不可能挂接很多设备。而(Universal Serial Bus,简称USB)的出现能很好地解决以上这些冲突。我们利用89C51设计了基于USB总线的数据采集设备,并可与MAX485结合起来实现数据的远程采集。

系统硬件设计
USB数据采集系统硬件模块主要由串行A/D转换器、89C51芯片、USB接口芯片和多路模拟开关等组成。硬件总体结构框图如图1所示。
USB接口芯片采用National Semiconductor公司的一种专用芯片USBN9602。该芯片内部集成微处理器接口、 FIFO存储器、时钟发生器、串行接口引擎(SIE)、收发器、电压转换器,支持DMA、微波接口。
多路模拟输入信号经多路模拟开关控制将其中的一路接入串行A/D转换器,A/D转换器经光电隔离后串行输出到移位寄存器,移位寄存器将此结果转为8位并行数据,89C51系统通过8位的并行接口传送A/D转换器采集的数据,存储在FIFO存储器中;一旦FIFO存满,SIE立刻对数据进行处理,然后89C51系统将数据从FIFO存储器中读出,由收发器通过数据线(D+、D-)送至主机。 USBN9602与89C51的具体接口电路如图2所示。图中USBN9602的CLKOUT与89C51的XTAL1相连,即USBN9602的时钟输出为89C51提供时钟输入。USBN9602的复位端接RC电路以保证复位电路可靠地工作。由于晶振频率较高,结合USBN9602内部网络,在XOUT端串接100mF电容及470mH电感,起稳定内部振荡频率的作用。

图1 硬件总体结构框图

系统软件设计
系统软件包括设备固件、 USB设备驱动程序和应用程序。
设备固件(firmware)设计
此处固件是指固化到89C51E2PROM中的程序,其主要功能是: (1)控制A/D转换器的采样。(2)控制芯片USBN9602接受并处理USB驱动程序的请求及应用程序的控制指令。现主要介绍89C51系统如何控制USB控制器(USBN9602)与主机的通信。
89C51系统对USB控制器的操作是严格按照USB协议1.1进行的,按照USB协议1.1的规定,USB传输方式分为4种:控制传输,块传输,同步传输和中断传输。在实际开发中使用了控制传输和块传输。控制传输主要用来完成主机对设备的各种控制操作,也就是用来实现位于主机上的USB总线驱动程序(USBD.SYS)以及编写的功能驱动程序对设备的各种控制操作。块传输主要用来完成主机和设备间的大批量数据传输以及对传输数据进行错误检测(若发生错误,它支持“重传”功能)。
89C51系统控制USB控制器的工作过程可以简单地概括为:当USB控制器从USB总线检测到主机启动的某一传输请求后,通过中断方式将此请求通知89C51系统,89C51系统通过访问USB控制器的状态寄存器和数据寄存器获得与此次传输有关的各种参数,并根据具体的传输参数,对USB控制器的控制寄存器和数据寄存器进行相应的操作,以完成主机的传输请求。
USB设备驱动程序设计
USB系统驱动程序的设计是基于WDM(Windows driver model 驱动程序模型)的。WDM采用分层驱动程序模型(见图3所示),分为较高级的USB设备驱动程序和较低级的USB函数层。其中USB函数层由两部分组成:较高级的模块(USBD)和较低级的主控制器驱动程序模块(HCD)。
在上述USB分层模块中,USB函数层由Windows98提供,负责管理USB设备驱动程序和USB控制器之间的通信,加载及卸载USB驱动程序,与USB设备通用端点(endpoint)建立通信来执行设备配置、数据与USB协议框架和打包格式的双向转换任务。
目前Windows98提供了多种 USB设备驱动程序,但并不针对数据采集设备,因此需用DDK开发工具设计专用的USB设备驱动程序。在本设计中由四个模块实现:初始化模块、即插即用管理模块、电源管理模块以及I/O功能实现模块。

图2 USBN9602与89C51接口电路

图3 USB系统驱动程序层次关系

图4 应用程序主流程图

初始化模块提供一个入口函数DriverEntry(),所有对各种IRP(I/O Request Packet,IRP请求包)的处理例程都在此入口函数中做出定义。
即插即用管理模块实现USB设备的热拔插及动态配置。当硬件检测到USB设备接入时,Windows98查找响应的驱动程序,并调用它的DriverEntry例程,PnP(即插即用)管理器调用驱动程序的AddDevice例程,告诉它添加了一个设备;在此处理过程中,驱动程序收到一个设备启动请求(IRP_MN_START_DEVICE)的IRP。同理,当要拔除时,PnP管理器会发出一个设备删除请求(IRP_MN_REMOVE_DEVICE)的IRP,由驱动程序进行处理。通过对这些PnP请求的处理,可支持设备的热插拔和即插即用功能。
电源管理模块负责设备的挂起与唤醒。
I/O功能实现模块完成I/O请求的大部分工作。若应用程序想对设备进行I/O操作,它便使用Windows API函数,对WIN32子系统进行WIN32调用。此调用由I/O系统服务接收并通知I/O管理器,I/O管理器将此请求构造成一个合适的I/O请求包(IRP)并把它传递给USB设备驱动程序,USB设备驱动程序接收到这个IRP以后,根据IRP中包含的具体操作代码,构造相应的USB请求块并把此URB(USB请求块)放到一个新的IRP中,然后把此IRP传递到USB总线驱动程序,USB总线驱动程序根据IRP中所含的URB执行相应的操作(如从USB设备读取数据等),并把操作结果通过IRP返还给USB设备驱动程序。USB设备驱动程序接收到此IRP后,将操作结果通过IRP返还给I/O管理器,最后I/O管理器将此IRP中操作结果返还给应用程序,至此应用程序对USB设备的一次I/O操作完成。
应用程序设计
用户态的应用程序是数据采集系统的中心,其主要功能为:开启或关闭USB设备、检测USB设备、设置USB数据传输管道、设置A/D状态和数据采集端口、实时从USB接口采集数据、显示并分析数据。应用程序主流程图如图4所示。
由于USBN9602提供的FIFO不超过64字节,当它存满后,USBN9602自动将数据打包即时请求读入数据,由SIE自动发送数据包。另外,当系统启动A/D模块后,便会创建两个线程:采样线程和显示存盘线程。采样线程负责将采集数据写到应用程序提交的内存;而显示存盘线程负责给应用程序发送显示和存盘消息。当应用程序接收到此消息后,便从它提交的内存中读取数据并显示和存盘。此处需要注意的是采样线程和显示存盘线程在读写应用程序提交的内存时要保持同步。

远程数据采集系统设计
传输距离是限制USB在工业现场应用的一个障碍,即使增加了中继或Hub,USB传输距离通常也不超过几十米,这对工业现场而言显然太短了。现在工业现场有大量采用RS-485传输数据的采集设备,其优点主要为传输距离可达到1200米以上,并且可以挂接多个设备,但传输速度慢,且需要板卡支持,安装麻烦。但将RS-485与USB结合起来就可以优势互补,产生一种快速、可靠、低成本的远程数据采集系统。
设计这样一个系统的关键设备是RS-485~USB转换器,可以采用USBN9602+89C51+ MAX485实现这一功能,整个系统的基本思想是:将传感器采集到的模拟量数字化以后,利用RS-485协议将数据上传,上述RS-485~USB转换器在主机端接收485的数据并通过USB接口传输至主机进行处理,而主机向USB发送数据时,数据通过RS—485~USB转换口转换为485协议向远端输送,从而能够实现远程数据的双向传输。如图5所示。
软件方面的设计跟前所述类似。

图5 采用USB和485实现远距离数据传输
结语
基于USB外设的应用目前在国内外处于高速发展阶段,利用USB进行数据采集和工业控制已得到成功应用,特别是随着USB协议2.0的推出,数据传输速率高达480Mbps,如此高的传输速率必将使USB在数据采集中的优势更加体现出来,同时会使其在更广阔的领域得到更深层次的应用。

参考文献
1 张念淮,江浩.USB总线接口开发指南.北京:国防工业出版社.2002
2 李朝青.PC机及数据通信技术.北京:北京航空航天出版社.2000
3 原嵩,林浒.通用串行总线的原理及实现. 小型微行计算机系统.1999(5)
4 徐有青,余胜生.通用串行总线设备接口的设计.电子计算机与外部设备.1998(5)



评论


相关推荐

技术专区

关闭
心慌应该挂什么科 惨绿少年什么意思 特殊门诊是什么意思 为什么风团会在晚上爆发 头发拉焦了有什么补救
瞑眩反应是什么意思 身体内热是什么原因 消化不好吃什么 右眼皮跳是什么意思 外婆菜是什么菜
乳腺回声不均匀是什么意思 红虫是什么的幼虫 甲沟炎用什么药膏 支气管扩张是什么原因引起 银屑病吃什么药
中耳炎吃什么药最有效 黑卡是什么卡 维c之王是什么水果 6个月宝宝可以吃什么辅食 rn是什么意思
老虎属于什么科动物hcv8jop8ns2r.cn 十二指肠溃疡吃什么中成药hcv9jop5ns6r.cn 排骨炖什么好吃bfb118.com 为什么会得尿毒症cj623037.com 心理素质是什么意思96micro.com
西方属于五行属什么sanhestory.com 内风湿是什么原因引起的520myf.com 喉咙发痒吃什么药hcv8jop7ns6r.cn 梦见租房子住是什么意思hcv7jop5ns3r.cn 腹部ct平扫能检查出什么hcv7jop6ns9r.cn
鼻炎会引起什么症状hcv9jop6ns1r.cn 一片片什么xinmaowt.com 六味地黄丸是治什么病hcv9jop4ns2r.cn 滇是什么意思hcv8jop2ns6r.cn 肝气犯胃吃什么中成药hcv8jop5ns5r.cn
三伏天晒背有什么好处hcv8jop3ns4r.cn 母亲节送母亲什么礼物hcv8jop4ns2r.cn evisu是什么牌子hcv7jop5ns4r.cn 开通花呗有什么风险hcv8jop3ns4r.cn 引渡是什么意思hcv8jop5ns7r.cn
百度