标签目录:摩登平台计划

摩登3新闻554258:_仪器仪表检测方法浅析

仪器仪表的维修在电子市场中是不口确实的一部分,仪器仪表公司只有凭借良好的检测技术才能让那些不合格的产品最终合格的走进市场,对仪器仪表的技术员工要有着良好的电子专业知识基础,也需要丰富的现场经验。   1、敲击手压法   经常会遇到仪器运行时好时坏的现象,这种现象绝大多数是由于接触不良或虚焊造成的。对于这种情况可以采用敲击与手压法。   所谓的“敲击”就是对可能产生故障的部位,通过小橡皮𨱍头或其他敲击物轻轻敲打插件板或部件,看看是否会引起出错或停机故障。所谓“手压”就是在故障出现时,关上电源后对插的部件和插头和座重新用手压牢,再开机试试是否会消除故障。如果发现敲打一下机壳正常,再敲打又不正常时,最好先将所有接头重插牢再试,若伤脑筋不成功,只好另想办法了。   2、观察法   利用视觉、嗅觉、触觉。某些时候,损坏了的元件会变色、起泡或出现烧焦的斑点;烧坏的器件会产生一些特殊的气味;短路的芯片会发烫;用肉眼也能观察到虚焊或脱焊处。   3、排除法   所谓的排除法是通过拔插机内一些插件板、器件来判断故障原因的方法。当拔除某一 插件板或器件后仪表恢复正常,就说明故障发生在那里。   4、替换法   要求有两台同型号的仪器或有足够的备件。将一个好的备品与故障机上的同一元器件进行替换,看故障是否消除。   5、对比法   要求有两台同型号的仪表,并有一台是正常运行的。使用这种方法还要具备必要的设备,例如,万用表、示波器等。按比较的性质分有,电压比较、波形比较、静态阻抗比较、输出结果比较、电流比较等。   具体方法是:让有故障的仪表和正常仪表在相同情况下运行,而后检测一些点的信号再比较所测的两组信号,若有不同,则可以断定故障出在这里。这种方法要求维修人员具有相当的知识和技能。

摩登3登录_24V总线工业应用中线性稳压器与开关式稳压器比较

作者:德州仪器 (TI) 电源管理组产品营销经理Rich Nowakowski和应用工程师兼技术员组成员Robert Taylor 图1 集成MOSFET的开关式(降压)转换器图2 集成、宽输入电压线性稳压器 线性稳压器已存在了许多年。一些设计人员仍然把已存在了20多年之久的线性稳压器用于众多新老项目。另一些设计人员则通过离散组件制作出属于自己的线性稳压器。在进行宽范围电压转换时,线性稳压器的简单性是一个难以超越的优势。但是,如果压降过大,则24V总线的低电流应用(例如:工业应用或者HVAC控制等)可能会遇到热问题。幸运的是,设计人员现在有许多选择,可以使用小型、高效、宽输入电压开关式稳压器。 本文将对24V总线、100mA和5V输出的三种不同解决方案进行比较。我们把一个同步降压转换器与一个集成线性稳压器和一个离散线性稳压器进行对比。通过比较它们的尺寸、效率、散热性能、瞬态响应、噪声、复杂度和成本,帮助广大设计人员选择最能满足某个特殊应用要求的解决方案。 比较条件大多数工业应用都使用24V总线,并要求5V电压来驱动各种负载,例如:逻辑和低电流微处理器等。我们选择100mA的输出电流,原因是它可适应许多逻辑和处理器负载。但是,功耗水平会影响我们使用开关式稳压器还是线性稳压器的决定。图1、2和3所示电路均建立在相同电路板基础上,并使用相同额定值的1µF输入和4.7µF输出陶瓷电容器。 图1所示设计使用一个具有集成MOSFET的同步降压转换器,即德州仪器的TPS54061。注意,该电路并不要求使用一个保护二极管,但却包含了1个电感、5个电容器和4个电阻器。该器件还使用了外部补偿,并使用与图2和图3所示线性电路一样的输入和输出电容器。 图2所示设计使用了一个集成、宽输入电压线性稳压器,即德州仪器的LM317,它是一种具有1.5A输出能力的流行工业标准稳压器。该电路使用2个外部电阻器和2个外部电容器。输入和输出电压的巨大差异,要求双decawatt封装(DDPak)的低热电阻。 图3显示的是一个离散线性稳压器,它使用一个晶体管和一个齐纳二极管,并有2个外部电容器和4个外部电阻器。5.6V下时,齐纳二极管损坏,该电压被馈给NPN晶体管的基极。由于存在基极-发射极压降,输出被调节至~5 V。外部电阻器用于帮助降低NPN晶体管的功耗。 表1概括了这类设计的板面积和组件数目。线性稳压器解决方案要求使用更多的板面积来缓解电路板上的热问题。全负载下时,所有线性稳压器解决方案的功耗都必须达到约2W。一般而言,1平方英寸板面积内,1W左右的功耗会带来100°C的温升。按照设计,线性稳压器解决方案仅允许40°C的温升。如果不考虑外部组件的数目以及补偿反馈环路和选择电感的大量设计工作,在板面积有限时,同步降压转换器无疑是理想选择。 散热性能图4所示热图像表明了这类电路板设计的温升情况。这样设计电路板的目的是,让所有电路均不会干扰相邻电路的散热性能。表2表明,开关式稳压器具有低温升,其温度为11°C。输入和输出电压之间存在巨大差异时,相比线性电路,同步整流开关式稳压器的效率表现优异。(参见表3)有趣的是,我们注意到,集成线性电路的温升不同于离散线性电路。由于集成线性稳压器的封装(DDPak)更大,因此它的散热所分布面积也更大。使用SOT-23和SOT223封装的离散线性电路比DDPak小,并拥有更高的封装功耗额定值,从而让散热更加困难。 图3 离散线性稳压器 表1 板面积和组件数目概括表表2 散热性能总结表 图4 每种电路的发热情况(白色表示最高温度) 表3 效率和功率损耗总结表图5 效率与负载电流的关系曲线图 图6 功耗与负载电流的关系曲线图 效率比较散热性能直接与每种稳压器的效率有关。图5显示了所有三种电路的效率比较情况。正如我们所预测的那样,在轻负载和全负载效率两方面,开关式稳压器均表现优异。在轻负载下,开关损耗和静态电流损耗更加明显,其解释了更轻负载下效率较低的原因。轻负载下时,最好是查看功耗曲线图(图6),而非效率曲线图,因为10mA下50%的效率差异看似为一个较大的余量。但是,负载消耗的电流较小。当输入电压为24V而输出电流为10mA时,开关式稳压器的功耗为2.8mW,集成线性稳压器的功耗则为345mW。在全负载条件下,开关式稳压器的测得功耗为0.093 W,而线性稳压器则为2.06W,其表明余量较宽并且性能获得明显改善。 表3总结了所有三个电路的效率和功耗。注意,离散线性电路的静态电流小于集成线性电路。相比离散线性电路,集成线性稳压器内部电路的功耗更高,并拥有更多的功能。 输出电压特性模拟电路对电压纹波敏感,而数字处理器则对内核电压的精度敏感。应查看电源的电压纹波、电压调节精度以及负载瞬态期间的电压峰值偏差,这一点很重要。线性稳压器本身的纹波较低,可用于消除开关式稳压器的噪声。在最大负载条件下,集成和离散线性稳压器电路的电压纹波均小于10mV。以输出电压百分比表示时,精度应大于0.2%。另一方面,开关式稳压器的电压纹波为75mV,即输出电压的1.5%。开关式稳压器的陶瓷输出电容器的低等效串联电阻特点,使这种电路的纹波较低,但存在开关式稳压器的固有噪声。 比较空载到全负载时开关式稳压器和线性稳压器的输出电压精度表明,开关式稳压器拥有更高的性能。进一步查看产品规格表,我们可知道,开关式稳压器的基准电压是三种电路中精度最高的。开关式稳压器是一种相对较新的集成电路,并且DC/DC转换器正朝着更高的基准电压精度发展。离散线性电路使用一种更加简单的方法来调节输出电压,其性能最低。在许多情况下,由于调节后输出电压为5V,许多应用不需要高电压精度。 图7到图9显示了负载瞬态曲线图。尽管开关式稳压器拥有高输出电压精度,但其在负载瞬态期间测得的峰值到峰值电压并没有线性电路好。50mA到100mA负载步进期间,开关式稳压器的测得峰值到峰值电压为250mV,即输出电压的5%,而线性电路则为40mV。我们可以为开关式稳压器添加更多输出电容,以降低电压峰值,但是代价是成本和尺寸的增加。注意,离散线性电路的设计目的并非是恢复负载瞬态期间的输出电压。另外,简单电路无法实现限流或者热关断保护功能! 图7 负载瞬态期间的开关式稳压器 图8 负载瞬态期间的集成线性稳压器 图9 负载瞬态期间的离散线性稳压器 表4总结了三种稳压器设计的输出电压特性。 表4 输出电压特性总结表 成本比较这些电路中使用的大多数外部组件均为小型、无源电阻器和电容器,成本不超过0.01美元。三个电路中成本最高的组件是硅。所有三个材料清单(BOM)的费用(如表5所示),均收集自10000颗批发建议销售定价的美国销售渠道。正如我们所看到的那样,线性稳压器解决方案的成本远低于开关式稳压器。不幸的是,开关式稳压器要求使用一个外部电感,其费用约为0.10美元,但它所带来的效率提高和尺寸缩减值得我们为此多给钱。集成和离散线性稳压器的成本差异仅为0.06美元!单是保护功能就能证明集成线性稳压器相比离散线性稳压器的优势所在。 表5 BOM成本总结表 结论有许多电源管理解决方案可供设计人员选择,但需根据具体应用需求来选择最佳的解决方案。那些能够降低能耗和节省板空间的电源管理解决方案,使设计人员让其产品具备更加差异化的特性,并在市场上表现出对用户的吸引力。相比线性电路,同步降压转换器的效率更高,板空间更节省。如果某个设计必须实现最低的成本,则可使用离散线性电路,但其性能最低,并且还存在许多潜在问题,例如:散热和缺少保护功能等。 表6总结了所有三种稳压器设计的特性,帮助设计人员为某种具体应用选择最佳解决方案。 表6 24V输入5V/100mA稳压器特性

摩登3娱乐怎么样?_三星因员工确诊关闭越南一座工厂:不影响整体生产线

据韩联社报道,三星显示公司周一证实,在一名员工检测出新型冠状病毒呈阳性后,该公司在越南的部分工厂已经关闭,不过三星也强调在越南的显示面板生产线不受影响。 据悉,上周日,位于邻省北宁省的三星显示器工厂旗下EQC-SI部门的一位25岁员工新冠肺炎检测呈阳性。为了保护员工,三星显示公司在EQC-SI部门工作的44人已经被隔离,该工厂和运送工人的通勤大巴已经喷洒了消毒液。此外三星显示公司还要求那些接触过病毒感染的员工进行自我隔离。 据悉,三星电子是越南最大单一外国投资者,其产品出货量(主要是智能机)占据了越南出口的大约四分之一。此次疫情影响广泛,此前,三星电子在韩国的手机工厂、芯片工厂都出现过确诊案例。

摩登3内部554258_采用CC-Link的楼宇管理系统

AGSYTEC公司是楼宇技术的专门企业,位于幽静的Neuenstadt(BadenWurttemberg)城市的该公司,利用最先进的开放式现场总线CC-Link实现了全面性自动化,通过简单的楼宇管理系统,连接了用户的4个工厂和办公楼。 在采用楼宇管理系统(BMS)前,所有的楼宇设备-照明、暖气、窗户、百叶窗、演示投影屏、等其他许多功能 - 都是用手动管理。在进行设备系统管理时,没有人认识到手动管理比全自动化费用更大,但从长远观点看待能源管理,采用自动化BMS系统则能削减大量经费。如果使用BMS新系统,窗户开启时能立即通知,正确的设备控制使楼宇的安全性也比以往得到了提高。 旧式BMS系统能源消费大,不能得到良好的室内暖气效果,阳光等产生的热量也不能充分利用。 利用AGSYTEC公司的新BMS,最新的自动操作能够确保楼宇设备的正确实时控制,此项新技术使整个管理面貌一新。 Heuchemer先生(AGSYTEC产品经理)说:“我们向用户提供CC-Link,是因为CC-Link对电磁噪音有着显著承受力。以前使用其他网络,经常出现噪音问题。但使用CC-Link,不需花费高额配线费用以及进行接地予防措施,就能发挥功能。另外,使用CC-Link的其他理由,还能列出低成本、不仅网络速度,其低位协议的实质性响应也具有高速性。由于这一高速性,不需对网络减速以及再次进行结构配置,在今后也能进行系统扩张。通过使用CC-Link,在同一网络上就能进行楼宇控制及设备连接,用户能大幅度降低引进成本。” 本系统由4台微型PLC构成,通过通讯速度10Mbps的CC-Link连接在中央模块上。中央PLC进行调节、监视、系统报告的管理。在各楼宇有进行楼宇智能控制的独立PLC,楼宇之间的网络被隔断时,也能确保系统正常运行。各楼宇的PLC站,通过数字/模拟信号进行楼宇控制。在此站使用PT100,对PLC的PID环路输入温度数据。PID环路调节温度,确保楼宇的有效暖气。各温度控制环路有优异的识别功能,不会因开门或有人进入房间时,切换(ON/OFF)暖气开关。 BMS系统完全智能化,都带有定时器通道开关。这样房间设备能适时开关(ON/OFF),实现能源节省。在BMS系统使用此信息,计算将楼宇房间的温度逐渐升高到设定温度的最佳时机。这样,通过短时间提高房间温度也能大幅度节约能源。 每个房间有两个温度感知器,1个在北,另1个在南。能捕捉从窗口的太阳光热的温度变化,有利于节省能源。 连接在中央主站PLC的PC,使用AGSYTEC公司的可视基础监视控制软件。该中央PC系统操作人员可以检查状态(窗户是否开着),改变楼宇设备及相关地点。 在会议室进行发表时,为实现设备的集中控制,AGSYTEC公司采用了带小型接触键盘的HMI。发表人员从中央的发表地点,就能开关卷帘窗和窗户、操作房间的所有照明、升降投影屏、调节空调温度。(也有一般的暖气系统和备用的地板暖气系统。) ChristophLohmn先生(AGSYTECH公司安装服务经理)说“CC-Link使网络更加工业化,在系统运转状况下也能移动电缆。从管理的观点来看,通过接在主站PLC的解调器就能设计网络及连接站,这也是CC-Link的一个优点。因此,我们在采用后也能有效地提供管理服务,用户不必到现场就能进行远程诊断。” 使用智能楼宇管理系统虽然需要花费初期费用,但能节约30%的能源,两年就能收回成本。

摩登3官网注册_基于Camera Link接口的图像跟踪系统的设计

  目前使用的图像跟踪系统前端输入信号一般都是PAL制式的标准全电视信号,每20 ms一场,每40 ms一帧。模拟信号经过视频解码器转换成720×576大小的数字信号后,再对其中的目标进行分割、识别和跟踪,并准确计算出目标的位置角度偏差,并传给伺服机构。在某系统中要求能对3×3像素大小的小目标进行精确跟踪,为了达到跟踪精度,可以提高图像输入的帧频和提高图像输入的分辨率,因此前端采用了 DALSA公司的一款基于Camera Link接口的数字摄像机,该相机的帧频为100 Hz,分辨率高达1 400×1 024。这样帧处理时间就只有10 ms,考虑到系统的实时性,我们采用了TI公司的高性能的DSP芯片TMS320C6414和高性能FPGA芯片EP2S30F672为核心的硬件处理平台。 本文引用地址:http://www.eepw.com.cn/article/166928.htm   1 系统硬件结构和工作原理   整个图像跟踪模块的结构图如图1中虚线框所示,整个系统包括以FPGA为核心的图像采集和预处理单元,以DSP为核心的图像处理单元以及由FPGA控制的图像显示单元。   由于采集、处理、显示均要访问存储器,为了降低成本,用普通的异步SRAM构成。按照功能来分可分为采集处理用SRAM组和采集显示用SRAM组,每组分别包括两片SRAM,其读写逻辑由FPGA控制,采用乒乓方式进行切换。   对于采集处理部分,第K帧时,SRAM1由FPGA控制写入图像数据,同时SRAM2由DSP读数进行处理;第K+1帧时则相反,SRAM2由FPGA控制写入图像数据,同时SRAM1由DSP读数进行处理。   对于采集显示部分,第K帧时,SRAM3由FPGA控制写入图像数据,同时SRAM4由FPGA读数进行显示;第K+1帧时则相反,SRAM4由FPGA控制写入图像数据,同时SRAM3由FPGA读数进行显示。   整个系统工作过程都是这样的:其中图像采集单元经由差分转换芯片后变成LVTTL信号,直接连至FPGA,由FPGA控制数字图像的采集,进行图像预处理后,将图像数据存储在SRAM中,给DSP发出中断信号,DSP响应中断后,从SRAM中读取一帧图像数据后,进行图像分割、目标提取、目标跟踪算法,计算出方位和高度角偏差分量,将结果通过FPGA的片内的板间通信双口RAM传递给主控模块,主控模块再调整伺服机构保证被跟踪的目标处于视场中心。   主控模块还可以将系统的一些状态变量实时的通过板间通信双口RAM传给DSP,DSP根据这些状态生成需要显示的字符,将这些字符写入到FPGA片内字符叠加双口RAM中。FPGA读取显示RAM中的图像数据和片内字符叠加双口RAM内的数据,在原图上叠加十字丝和波门,以及系统的一些状态字符信息,按照 PAL制式时序向DA芯片送视频数据,这样监视器就可以输出标准的PAL制式的图像。   2 各个单元设计   2.1 基于Camera Link接口的图像采集和预处理单元   Camera Link是一种基于视频应用发展而来的接口,它解决了视频数据输出和采集之间的速度匹配问题。Camera Link数据的传输率非常高,可达1 Gb/s,采用了LVDS格式,抗噪性能好。Camera Link的信号包括三个部分:串行通信部分、相机控制部分、视频信号部分,基于Camera Link接口的图像采集单元详图见图2,每个部分采用专门的差分转换芯片。串行通信部分则将异步串口转换成标准的RS 232电平,这样可以由主控机对相机的曝光时间、对比度等设置进行调节。相机控制部分包括4对差分信号,用来对相机进行控制,比如相机的外同步信号输入控制,可以由FPGA进行控制。视频部分的28 b LVTTL信号是关键控制部分,它们直接接在FPGA上,由FPGA来控制采集的时序。 上一页 1 2 3 下一页

摩登3注册网站_基于CC-Link的热预压设备网络控制系统的设计与实施

1 引言   螺旋弹簧是汽车减振功能的组成核心,而螺旋弹簧在汽车制造工程中又是汽车制造商的重点监察工程。热预压设备是汽车螺旋弹簧制造的重要组成设备,汽车螺旋弹簧的制造必须经过热预压设备进行热预压之后,才能保持螺旋弹簧的持久耐用性,并永久保持不疲劳变形。首先,要实现螺旋弹簧在200℃高温情况下快速进行自动化预压处理,单靠作业员来操作是不现实的。因而,本预压设备就在螺旋弹簧的投入、定位、预压、排出等动作工程中,完全靠机械手作业。针对在200℃高温的恶劣作业环境和高效产出要求,我们研制了一套采用cc-link现场总线组建的快速、适合高温作业且非常省线的控制系统。 2 cc-link的特性   cc-link是control communication link(控制与通信链路系统)的简称,是三菱电机于1996年推出的开放式现场总线。其数据容量大,通信速度多级可选,而且是一个复合的、开放的、适应性强的网络系统,能适应从较高的管理层网络到较低的传感器层网络等不同范围。cc-link是一个以设备层为主的网络,一般情况下,cc-link整个一层网络可以由一个主站和64个从站组成。网络中的主站由plc担当,从站可以是远程i/o模块、特殊功能模块、带有cpu和plc的本地站、人机界面、变频器及各种测量仪表、阀门等现场仪表设备,而且可实现从cc-link到as-i总线的连接。cc-link具有高速的数据传输能力,最快可达10mbps。cc-link底层通信协议遵循rs-485,一般情况下,cc-link主要采用广播-轮询的方式进行通信。cc-link也支持主站与本地站、智能设备站之间的瞬间通信,具有性能卓越、应用广泛、使用简单等突出优点。 3 系统设计   3.1 系统组成   本系统由主站(q02cpu)、3个远程i/o模块、2个远程智能设备站(三菱got970触摸屏)和1台pc机组成(能够根据螺旋弹簧预压工艺要求修改参数),如图1。其中主站中的qd75模块是螺旋弹簧在热预压机投入、排出和预压的机械手伺服系统的定位模块,而qd62模块是预压前的定位编码信号检测模块。2个远程智能设备站提供在现场两个不同作业位置使用的三菱got970触摸屏链接;而三菱got970触摸屏在cc-link网络中的链接要分别追加适配器(a8gt-j61bt13)才能起到链接作用,而在触摸屏gt970的程序编写地址上还要求在地址首端附加站地址号,否则该站无法使用。主站链接适配器是qj61bt11,主站与pc机链接适配器是qj71c24,而pc侧使用的通信电缆接口是rs232c串联通信接口(具体请见图3);该pc机操作系统是windowsxp pro.(service pack 2)english version,其应用软件是日本morita公司自行开发的。远程输入站设置要求请参考图4。 图1 系统组成示意图 图2 具体链接协议 上一页 1 2 下一页

摩登3平台首页_CC-Link在隧道掘进设备中的应用

飞机、导弹、宇宙飞船等“上天”装备对自动控制系统的要求是众所周知的,而隧道掘进设备对自动控制系统的要求大家还比较陌生,俗话说“上天入地”,隧道掘进设备就是一种特殊的“入地”装备,隧道掘进设备的自动化控制与其他行业的自动化控制相比具有技术难度高、工作环境恶劣、PLC应用历史短、系统故障引起的危害可能波及地面建筑等特点,许多工程实例说明隧道掘进设备自动控制系统的任何小故障都有可能放大为大事故,由此可见隧道掘进设备对自动控制系统要求有多高。  隧道掘进设备是一种存在振动的移动设备,它工作时会产生高温、高湿、高尘、高电磁干扰,几乎所有对自动控制系统不利的工作条件在隧道掘进设备中都存在,许多厂商的自动化元件在隧道掘进设备中应用时都或多或少发生过误动作,三菱电机的CC-Link通信网络和Q系列PLC在隧道掘进设备应用时还没有发现误动作,最近的一次实例是用于地铁二号线古北路站至中山公园站区间隧道施工的隧道掘进设备。该隧道掘进设备自动控制系统具有如下二个特点:  ①PLC输入输出点数多,开关量近1000点、模拟量100点以上。  ②PLC站间通信采用通信网络,PLC系统一次设计、分步实施,主PLC、1#PLC、2#PLC、3#PLC为基本PLC,4#PLC、5#PLC、6#PLC为扩展PLC,根据工程需要选用。    1、CC-Link通信网络的结构  CC-Link通信网络的结构如下图所示:主PLC为CC-Link网络控制PLC、1#PLC、2#PLC、3#PLC挂在CC-Link上组成隧道掘进设备分区域集散控制系统,承担隧道掘进设备的基本控制任务;4#PLC、5#PLC、6#PLC是隧道掘进设备自动控制系统的扩展部分,承担可以独立运行的单体设备的控制任务,它们根据需要挂上CC-Link通信网络。  1#PLC接受主PLC的操作指令,接受主PLC、2#PLC、3#PLC送到CC-Link通信网络上的开关量信号和模拟量信号,控制隧道掘进设备2#台车与3#台车的设备,向CC-Link通信网络上传2#台车与3#台车的开关量信号和模拟量信号。共有DI128点、DO64点、AI8点,采用三菱电机的Q系列PLC。  2#PLC接受主PLC的操作指令,接受主PLC、1#PLC、3#PLC送到CC-Link通信网络上的开关量信号和模拟量信号,控制隧道掘进设备4#台车与5#台车的设备,向CC-Link通信网络上传4#台车与5#台车的开关量信号和模拟量信号。共有DI64点、DO32点、AI8点,采用三菱电机的Q系列PLC。  3#PLC接受主PLC的操作指令,接受主PLC、1#PLC、2#PLC送到CC-Link通信网络上的开关量信号和模拟量信号,控制隧道掘进设备本体和拼装区域的设备,向CC-Link通信网络上传设备本体和拼装区域的开关量信号和模拟量信号。共有DI128点、DO128点、AI24点、AO8点,采用三菱电机的Q系列PLC。  4#PLC有二种控制模式,在就地控制模式下可以独立运行,在远程控制模式下接受主PLC的操作指令,向CC-Link通信网络上传4#PLC采集到的开关量信号和模拟量信号。共有DI24点、DO16点、AI16点,采用三菱电机的FX系列PLC。 上一页 1 2 下一页

基于CC/CCS的Flash文件系统设计

摘要:在深入分析TI为开发DSP提供的RTS.LIB(RTS.SRC为源泉代码)的基础上,介绍对自定义的和设备的操作方法;一个简易的,极大地方便了应用编程。 关键词:DSP 1 概述 在开发DSP的应用程序过程中,经常需要处理一些数据文件。这些数据文件可以是实际采集到的数据集合,也可以是用模拟仿真软件产生的数据集合,一般是以文件的形式存放在主机磁盘上的。一般的开发环境(如TI的CCS和CC)都提供了ANSI C标准操作文件格式,如打开一个文件fopen(“盘符:路径文件名”,“打开模式”)。嵌入式一般都外挂。我们希望能够和读写主机磁盘文件一样操作Flash读写时序等问题,使应用编程人员可以把精力用在解决实际应用问题上,从而提供一个良好的编程接口。同时,在需要键盘、串口等设备的系统中,也希望提供一个简易的API接口,如从键盘得到一个键,只需作如下操作,在执行fopen(“keyboard”,”读”)后,就可以用fread函数读入一个字符。 结合TI公司提供的DSP开发环境(CC针对3X系列,CCS针对5X和6X系列)和实际开发经验,提供上述问题的解决方案,并成功应用到我们的产品中。 2 文件操作机制 TI公司为其TMS320C3X系列DSP提供了一个开发环境Code Composer,配套的C语言编译器提供了文件的标准操作。在调试(debug)环境下,对主机(host)硬盘文件的操作是通过标准的ANSI文件操作格式与主机的通信来完成的。ANSI C I/O操作分为三个等级―high level、low level和Device level。在High level中,标准接口是Fopen和Fwrite等函数;而Low level中是Open和Write等函数。这三个等级功能用三个表来实现―文件表、流表(实质就是内存缓冲区索引)和设备表。文件的打开和关闭等基本属性在文件表中反应。当打开一个文件时,文件表中便相应增加一个描述该文件的信息单元;同样,关闭一个文件时,该文件的信息单元从文件表中被删除。流表提供了对文件的缓冲操作处理,缓冲区位置和大小等均在流表中记录。一个文件对应一个流,即缓冲区。对文件的读写就是对缓冲区的读写。当缓冲区填满时,再一次性写入Flash等设备中,避免了对Flash的频繁操作,延长了Flash的使用寿命。设备包括Flash、硬盘、键盘等在设备表中体现。多个流可以对应一个设备,例如在Flash中可以打开多个文件,但是一个设备不能对应多个流。流操作和设备操作是紧密联系在一起的。当打开一个文件时,同时给出了该文件在什么设备上操作,再分配一个流。以后对该文件的操作通过流对应的具体设备的驱动函数来完成。主机的target任何外设都可被加入进去成为设备表的成员之一。 Code Composer对HOST磁盘文件的操作最终是通过与HOST集成开发环境通信的方式来进行。TI提供的RTS.LIB提供两个函数与主机通信,writemsg()函数发送数据和参数到主机。Readmsg()函数从主机读取数据到目标机。Code Composer再与主机进行交互,利用主机文件系统的支持,屏蔽了具体的物理地址读写问题。在调试阶段,当要在主机上建立文件、读取文件和存储数据时,只需用标准的ANSI C函数操作就可以,从而极大方便了编程调试。 3 Flash文件系统的实现 嵌入式文件系统一般有集中管理文件系统,存储空间的使用信息集中存在存储器的某个地方,如DOS的FAT,Unix的inode表。线性文件系统,又称为连续文件系统,每个文件相关的所有信息都连续存放在存储器中。与集中式文件系统相比,实现更简单,读写更快,特别是将文件的关键系统分布存放。日志文件系统顺序写入文件系统的修改,如同日志记录一样,可加速文件写入和崩溃修复。采用Log唯一结构,Log包含索引信息、名称和数据。嵌入式系统不可能带硬盘,一般都是Flash存储器的。 3.1 Flash特点及其相应处理 Flash的读操作与普通RAM时序一样,但是写和擦除操作则具有自身的特点。同一地址不能同时写入两次,必须进行费时的擦除操作。执行擦除的方式有三种:一是片擦除,即一次性全部擦除所有内容(这个相当于格式化功能,在第一次使用时可以执行这种操作);二是块擦除;三是扇区擦除。以SST39VF400A为例,块Block的大小是32KB,扇区的大小是2KB,块擦除一次擦除一个块内容;扇区类似。如果一个文件内容被改动,且改动的内容不足一个扇区的话,则更新文件时必须重写这个扇区的所有内容;在重写前必须擦除该扇区的所有内容。因此Flash的文件系统不能完全套用已有的文件系统,但可以在其基础上进行改动。Flash能够擦除的范围越小,对文件的改动就越小,所执行的I/O操作就越小,从而减少I/O时间,提供文件系统的实时性能。我们使用的SST39VF400A的扇区大小是2KB,也就是2048B(1K=1024)。用常数定义,#define FileUnit 2048。 3.2 Flash文件系统的层次性 与ANSI C标准相对应,我们将Flash文件系统分为3个层次。第一层次,API层。API层是文件系统与用户应用程序之间的接口,包含一个与文件函数相关的函数库,如FS_FOpen、FS_Fwrite等,也相当于High Level层。第二层次,文件系统层,即Low Level层。该层处理文件是否存在,打开,关闭和为文件分配相应的缓存等。该层调用底层驱动。第三层是Device Level层,就是设备驱动层。Flash的实际读写操作就是在该层进行的,特定的Flash存储器对应特定的读写程序。 3.3 Flash文件信息表的 该表保存Flash中已有文件的属性,Flash大小和文件的属性等都在该表中反映出来。该表与Flash中的内容保持同步更新,即一个文件最小块更新完毕时,写入Flash中。 Flash的空间分配: ①Flash空间,以簇为单位,读和写都是一簇,即一个扇区单位; ②0簇给文件分配表,不被应用文件占用; ③每次文件系统初始化时,把Flash内0簇的内容读取到内存中,保存在数组FAT16[]中。 常量定义 #define CLUSTER_BLOCK_SIZE 2048 //每一簇的字节数 #define NUMBER_OF_CLUSTER_IN_FAT16 25 //在文件分配表中,一共有多少个簇 #define NUMBER_OF_FILE_BUF 10 //一共有几个文件缓冲区 #define MODE_OPEN_FILE_READ 0x01 //读取(文件打开模式) #define MODE_OPEN_FILE_WRITE 0x02 //写入(文件打开模式) #define MAX_SIZE_OF_FIEL 2048 //文件的最大尺寸 文件结构体: typedef struct{ unsigned int IsLock:1;//文件是否被上锁,=0没打开;=1已被打开。此标志只在文件的第一簇使用 unsigned int status:7;//簇的状态,=0,此簇为色,没使用;=1,此簇是第一簇;=2,此簇不是第一簇 char FileName[8];//文件名,在第一簇有效 char FileExName[3]; //文件扩展名,在第一簇有效 unsigned int SizeOfFile;//文件的字节数,在第一簇有效 unsigned int NextCluster;//下一簇的簇号。当为0xffffffff时,说明这是当前文件的最后一簇 }FlashFAT; 文件句柄结构体: typedef struct{ unsigned int Buffer[CLUSTER_BLOCK_SIZE];//文件缓冲区 unsigned int fileblock;//文件当前簇的位置 unsigned int filemode;//打开支持的模式 unsigned int filebufnum;//文件缓冲区中已被/写的字节数 unsigned int fileCurpos;//文件读写的当前位置 unsigned int filesize;//文件的大小 }FlashFILE; 3.4 Device Level驱动函数 SST39VF400A标准设备级驱动函数如下: void Program_One_Word(WORD SrcWord,WORD far…