|
技术文库首页
|
编程
|
IC
|
晶体管
|
精解
|
中频
|
其它
|
电源
|
基础
|
电脑
|
无线
|
液晶
|
微波
|
空调
|
手机
|
|
热水器
|
电动车
|
LED屏
|
焊机
|
您现在的位置: 华玉生活网 >> 技术文库 >> 无线 >> 正文>> 繁體中文

CH375在机车智能测温系统中的应用

0引言本文来源于一机车智能测温项目(功能模块如图1所示)。在列车或其他重要电工场合,重要部件的温度变化是极需重视的安全参数,必须为其设计智能温度监测系统。当温度超标时,不但要能及时报警,还要实时记录并保存精确的时间、温度数据。通过对危险时刻及该时刻对应温度数据进行统计分析,可以检出不安全因素发生的规律,以制定有效的预防措施。在图1中,数据存储模块采用USB总线接口方式,主要是由于USB具有可“热插拔”的特性

0 引 言

本文来源于一机车智能测温项目(功能模块如图1所示)。在列车或其他重要电工场合,重要部件的温度变化是极需重视的安全参数,必须为其设计智能温度监测系统。当温度超标时,不但要能及时报警,还要实时记录并保存精确的时间、温度数据。通过对危险时刻及该时刻对应温度数据进行统计分析,可以检出不安全因素发生的规律,以制定有效的预防措施。

在图1中,数据存储模块采用USB总线接口方式,主要是由于USB具有可“热插拔”的特性,使保存数据的操作更为简便。采用CH375作USB接口芯片,则是基于以下因素的考虑。

一般情况下,单片机或嵌入式系统处理USB存储设备的文件系统需要实现USB-HOST硬件接口数据交换层、传输协议层、SCSI/UFI/RBC命令层及文件系统管理4个层次。CH375的长处在于它内置了相关固件程序,包含了以上提到4个层次中的前3个。利用该芯片进行USB存储设备操作开发,就只需集中处理FAT文件系统层,大大缩短了开发的周期,对项目开发无疑是很好的选择。

CH375厂商已将文件系统管理层封包成库,对其进行开发时这一层可以忽略。然而,由于厂商未对一般用户提供此方面源码,开发过程中也带来了一些问题,例如:由于没有文件管理的C源码,进行程序调试就只能查看编译后的汇编代码,导致调试工作繁复,收效甚微;其次,尽管编译器已经作了优化,但编译后所占的系统资源仍远比用户自编文件管理子程序的大,这对资源极其有限的单片机非常不利;再次,由于开发平台不尽相同,芯片厂商提供的库子程序并不总有效,例如系统选用不同晶振时,库函数中的内嵌延时段的实现效果也会发生变化,往往造成USB设备与主机失去同步,这对于AVR等高档单片机更是如此。

由此可见,利用CH375操作USB存储设备,开发者很有必要熟悉FAT文件系统的格式。下文将从项目开发的实际出发,着重介绍进行文件管理的原理及编程步骤,以解决上文提及的困难。

1 USB总线接口的设计

1.1 硬件电路设计

如图2所示,CH375芯片的TXD引脚接地,从而使其工作于并口模式。CH375芯片的8位双向数据总线直接与MCU数据口相连,RD#和WR#分别连接到单片机的读选通输出引脚和写选通输出引脚。片选信号CS#、中断引脚INT#以及地址输入线A0分别与MCU任意分配的引脚相连。当CS#为低电平时,选通CH375芯片;CH375向MCU请求中断时,将INT#引脚电平拉低;当A0引脚为高电平时,选择CH375的命令端口,可以写入命令,为低电平时选择数据端口,可以读写数据。

1.2 软件设计及实现

本系统要求当普通U盘接入时,系统自动在其根目录下创建名为“DATA.TXT”的文件,将MCU内置RAM已记录的温度、时刻数据以字符串格式写入该文件;若文件已存在,则将数据追加至文件末尾;最后返回主程序。软件按图3所示流程进行设计, 电路上电后,先测试芯片是否能对单片机输出指令正确做出反应,必要时进行硬件复位,接着将芯片工作模式设置为模式6,即自动发送SOF包的主机模式,这样,CH375与单片机就构成了最基本的USB-HOST,当USB设备接人时,接收到该包,就会让该包通过。CH375检测到设备连接上后会向MCU发中断信号,接着以查询CH375中断状态的方式等待U盘插入,若检测到表征设备接入的中断状态,则表明U盘已连接。接着向CH375输出CMD_DISK_INIT,该命令将复位USB总线、读取并分析设备的描述符,然后自动配置,并建立起与设备之间的连接,完成后返回中断状态USB_INT_SUCCESS。上述步骤执行之后,芯片初始化的工作就完成了。

接着编写扇区读写程序。对于存储设备来说,文件管理几乎都是“块操作”方式,即使只修改存储设备中一比特的数据,也必须将包含该比特的整个扇区读出,找到相应位置进行修改,再把修改好的扇区数据写回原位置。对于大多数USB接口芯片,读写扇区的阶段要求我们熟悉SCSI或UFO协议指令,利用特定指令来完成操作。而CH375内嵌了支持此方面指令的固件,当读扇区时,发CMD_DISK_READ,与CMD_DISK_RD_GO配合使用,则可在USB存储设备中任意读取1至255个扇区的数据;只需将CMD_DISK_WRITE与CMD_DISK_WR_GO指令结合使用,则可在U盘中任意写入1至255个扇区数据。

进行文件读写前,必须完成以下工作:

根据DOS文件管理系统格式,声明必要的结构体,用于增强程序的跨平台可操作性及可读性。需要定义的结构体为DPT(DOS分区表)、MBR(主引导记录)、BPB16(BIOS参数块,仅适合于FAT12及FAT16)、BPB32(仅适合于FAT32)、FDT(文件目录表)、LFDT(长文件名FDT)等。除DPT、MBR外,其它结构体的内容在FAT硬件白皮书中均有专门表格详细说明。

声明并初始化必要的全局变量。首先必须读取首个物理扇区,即MBR扇区,取得DBR的相对起始地址,然后读取DBR的内容。有些U盘没有MBR,首个物理扇区就是DBR区,因此必须进行判断:若扇区首字节为0xeb或0xe9,则为DBR区,否则为MBR区。其次设置重要变量,并计算DOS各分区的起始LBA值。需要处理的变量按先后顺序如下:每扇区字节数、每簇扇区数、FAT表起始地址、单FAT表扇区数、根目录区扇区数(FAT32为0)、数据区起始地址、数据区总簇数、FAT类型及根目录的起始地址等。FAT类型按如下标准进行判定,如果数据区总簇数少于4085,则为FAT12类型;否则,若少于65525,则为FAT16;大于或等于65535为FAT32。

定义大小端模式转换程序。单片机对于字或双字数据的存储多采用大端模式,而绝大多数PC机为小端模式。U盘中的文件管理由于要兼容PC机,存储格式几乎均为小端格式。因此进行U盘数据操作时,如果读写字或双字数据,则必须进行大小端模式转换。

FAT表基本操作,包括查找空簇、读写指定簇内容。可编写子函数来解决查找空簇的问题,设计思路为读取FAT表特定扇区,然后按FAT类型不同分情况讨论。从第2簇开始,将代表特定簇的单元逐个与0比较,若不为0,则偏移地址作相应移动,例如FAT16每次移动2字节,而FAT32为4字节;至于FAT12,由于每12比特表征一簇,必须考虑FAT扇区的“边界问题”(如图4所示),需判断簇的奇偶性、设置边界校验标志,以解决边界问题。对给定簇号以读写FAT表对应单元的问题,也可编写子函数进行解决,该函数需要指定簇号、待写内容,还要给定输出指针变量。执行时根据簇号计算指定簇号所在扇区地址,将其读出,然后另存指定簇的内容,写入新内容,最后将修改后的扇区数据重新写入U盘原位置。为了使程序精简,还可将读指定簇内容的子程序与该函数并成单个子函数,考虑到待写内容即使在FAT32下,其有效值也不会超过0x0fffffff,因此编写程序时,可以均将其定义为双字类型,然后设定某值,例如0xf0000000,若待写内容为此值时,则不写入该簇内容,这样就保证了对FAT表只读不写。

最后,对FDT表进行基本操作及文件的创建、读写。根据文件系统有无根目录区,分情况读取FDT特定扇区。分析扇区数据时,如果待查看文件与待写入文件重名,则要读出文件首簇号及大小,到FAT表找到文件末簇,接着根据文件大小,判断待添加内容在簇中哪个扇区、扇区的哪个位置,读出并修改该扇区内容,然后重新写入,最后修改文件大小。

2 C语言移植

由于C语言具有良好的可移植性,编写文件管理程序,推荐在PC机上先实现,再移植至单片机平台。在PC机实现,硬件上只要求PC机有USB口;而软件方面,PC机编程具有以下特点:(1)读写扇区有专用函数;(2)要使用伪指令#pragma pack(1),使编译后的结构体字节对齐;(3)读写字或双字数据不必进行大小端模式的转换。

对于读写扇区,主要有以下两种方案:

其一,调用Windows API函数进行基本扇区读写。开发工具Dev—c++,包含头文件windows.h。方法是调用CreateFile( )打开设备端口;接着用SetFilePointer( )调整字节位置;最后用ReadFile( )或WriteFile( )进行扇区读写。

其二,调用DOS函数进行扇区读写。有两组函数供调用:(1)biosdisk( ),功能是使用中断0x13,直接调用BIOS进行磁盘操作;(2)absread( )及abswrite( ),可读写U盘的逻辑扇区,调用前须确定存储设备盘符,需指定待操作的逻辑扇区号。

在PC机上编写文件管理程序,无需外接硬件,操作简易;软件调试通过之后,代码可高效移植至单片机平台,极大提高了项目的开发效率。

3 结果比较

项目中本部分程序篇幅670行,文件管理层自编程序进行调试,在型号ATMega64的AVR单片机平台上测试通过。表1为采用ICCAVR编译后资源占用情况的对比,可见自编代码占用资源仅占后者的70%,远胜于后者。至于执行单步调试、修改延时等方面,其直观灵活性更明显。

4 结束语

在所涉及项目中,通过自编文件管理操作代码,使程序更为优化,极大减小了主系统的负担。按此方法设计的测温系统,能实时记录危险时刻的温度、时间数据,操作者只需往USB接口插入存储设备,系统即将数据以文本写入设备,简单实用,易于推广。通过分析读取到的数据,对确定电力部件发热状况、找出危险因素并进行预防,均有实用价值。


瑞达币购买
桂山秋竹_唐年桂2023年
桂北云雾图_唐年桂202

  • 扩展阅读
  • 上一个文章:
  • 【返回网站首页】 【返回无线】
  • 下一个文章:
  • 【字体: 】【】【发表评论】【加入收藏】【告诉好友】【打印此文
    文章 软件 电影 商品

    相关文章

    本站公告

    • 扫一扫,打赏给我们,谢谢!

      本站2016年12月16日起取消ruida.org.cn域名,该域名正式作废,该域名发布任何信息与本站无关。


      启用ruida.orghy928.net域名;

      瑞达网,瑞达科技网宣

    附页内镶内容
    健康养生 商场新品 股市K线、指标知识
     六种药酒配制法[11月7日]
     国公酒_散风祛湿,舒筋活络[3月8日]
     气血双补党参、麦冬、黄芪炖[11月29日]
     参桂再造丸_臂丛神经痛[11月29日]
     臂丛神经痛该怎样治疗[11月29日]
     舒筋络酊、百宝丹擦剂、参桂[11月29日]
     臂丛神经痛针灸治疗[11月29日]
     枳椇子_利水渗湿药[11月29日]
     三七、丹参、西洋参_颈椎病[8月17日]
     枸杞泡姜芽(嫩姜)的做法及功[5月20日]
     瑞达币购买
     桂山秋竹_唐年桂2023年新作品
     桂北云雾图_唐年桂2023年新作品
     广西2019年《高考指南》+《招生计
     金士科前置过滤器
     金牛前置过滤器
     USB口24系列编程器第二版含USB延
     液晶电视、液晶显示器图纸、维修
     彩电、显示器、DVD、EVD打印机等
     高清CRT彩电、显示器图纸刻录 4G
     [理财]各种短视频赚钱方法
     [会员]专业交易实战控制系统
     [理财]1分2分5分硬币回收价格表(20250123)
     [理财]1分2分5分硬币回收价格表(20230928)
     [理财]1分2分5分硬币回收价格表(20230624)
     [理财]2022 年新版1分2分5分硬币回收价格表…
     [理财]微信收款码如何开通商业版收信用卡费…
     [指标]R平方_基金指标
     [指标]标准差_基金指标
     [指标]平均回报_基金指标
    装修案例 网站建设 电器维修
     一般水电安装几个常用尺寸[1月29日]
     三相电表接法及度数的正确读…[5月8日]
     万能通用卧室房门锁更换步骤…[2月22日]
     乳胶漆的八大施工步骤及涂刷…[2月14日]
     旧墙翻新步骤及注意事项[2月14日]
     屋面防水施工工艺流程及注意…[1月16日]
     专利产品“防污吸气帽”新产…[1月8日]
     鲁班尺吉数对照表高清图片查…[10月29日]
     砂浆胶作用与危害[9月21日]
     4种处理水泥地面起砂方法[9月21日]
     网页html点击切换显示内容完[11月7日]
     动易SiteWeaver6.6网站管理系[7月31日]
     中国阴历农历JS支持 HTML网页[2月26日]
     java script error 容错处理[2月15日]
     几款还不错的网页特效显示日[2月14日]
     图片可以调大小的代码[12月14日]
     动易SW6.8网站系统改自适应支[11月20日]
     网站建设_套餐服务[12月4日]
     网站建设-费用明细[12月4日]
     不显示出来的代码[12月3日]
     联想 小新Air 14 2019笔记本…[6月15日]
     滚筒洗衣机脱水声音大原因及…[4月17日]
     智能电视不能开机强制恢复出…[1月16日]
     各大品牌智能电视机恢复出厂…[1月16日]
     洗衣机自己排水或不存水漏水…[6月15日]
     海尔冰箱出现-03还滴滴报警[5月29日]
     TCL电视通用教程安装教程[2月2日]
     TCL L43V7300A-3D液晶彩电出…[2月2日]
     先锋液晶电视LED-32B550无光…[1月17日]
     智能电视主板的应用与维修(…[1月11日]
    电器资料 下载 读书
     三个代码让电脑提速畅通秘籍[3月13日]
     视得安750D6对讲门铃工作原理…[9月13日]
     什么是量子芯片和光子芯片[5月14日]
     沃尔沃S90汽车遥控钥匙失灵的…[1月19日]
     LED显示屏瑞合信PLus单双色全…[12月22日]
     Windows 照片查看器无法显示…[8月6日]
     已经设置IE主页,但是打开还…[7月6日]
     如何调整空压机压力?空压机…[6月8日]
     剪映-视频编辑软件手机版使用…[5月28日]
     锂电池保护板作用及同口和分…[3月18日]
     [书籍]滕王阁序_原文_注释译文_白
     [书籍]《天工开物》明代宋应星初
     [电影]《抓娃娃》高清电影
     [联想]Lenovo S540-14API Compl 
     [书籍]《墨子》原文注释译文
     [LED条屏]瑞合信单双色/全彩控制系统
     [LED条屏]LED显示屏瑞合信手机APP6.
     [书籍]全本新注聊斋志异
     [书籍]广西2023年高考指南 招生计
     [书籍]个人防护手册(第二版)
     广西高考2024~2022年历史类([6月25日]
     凤阳花鼓[3月8日]
     《滕王阁序》[3月2日]
     卷一百二十八 艺文_杂记[2月24日]
     卷一百二十七 艺文_杂记[2月24日]
     卷一百二十六 艺文_国朝[2月24日]
     卷一百二十五 艺文_国朝[2月24日]
     卷一百二十四 艺文_五言排律[2月24日]
     卷一百二十三 艺文_历朝[2月24日]
     卷一百二十二 艺文_历朝[2月24日]
    珠宝玉器 在线电视台
     鸡血石与鸡血玉有什么区别[6月12日]
     鸡血玉[6月12日]
     鸡血石 (bloodstone)[6月12日]
     什么是莫桑石(Moissanite)[6月12日]
     可以戴钻石洗澡吗[1月22日]
     钻石如何保养才好呢?[1月22日]
     PT容易花的问题和钻戒保养问…[1月22日]
     切工 钻石的雕刻艺术[1月22日]
     如何保养好钻戒[1月22日]
     钻戒保养方法[1月22日]
     中央体育台
     中央新闻台
     宁夏卫视
     湖北卫视
     西藏卫视
     辽宁卫视
     河北卫视
     北京卫视
     政法频道
     农民频道
     湖南经视
     湖 南 台
     河南频道
     湖南卫视
     兵团卫视
     江苏卫视
     旅游卫视
     湖南都市
     七彩戏剧
     动漫秀场
     游戏风云
     法制天地
     魅力音乐
     新 娱 乐
     南 方 TV
     浙江卫视
     齐鲁频道
     山西影视
     东南卫视
     上海卫视
     贵州电视台
     重庆电视台
     山东卫视
     哪吒之魔童闹海《哪吒2》在线
     《抓娃娃》在线电影
     流浪地球2剧情介绍
     《万里归途》完整版
     《阿凡达2:水之道》耗资3.1
     2021港剧《梅艳芳》5集全.HD
     误杀2 -电影-完整版视频在线
     亲爱的/亲爱的小孩/打拐/家之
     《第一炉香》-电影-完整版视
     《扬名立万》-电影-完整版视
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论

    | 服务声明 | 充值中心| 华安五金电器 | 收费标准| 论坛| 留言| 实用查询| 会员中心| 下载帮助| 设为首页|

    技术支持:瑞达科技 即时交谈QQ:237013889 QQ群:13810759 E-Mail:237013889@qq.com
    非盈利网站,如有侵权,请来信来电告知,第一时间处理,谢谢!
    桂ICP备17008104号 华玉生活网网站统计
    tj