基于ARM的LCU测试系统的设计._第1页
基于ARM的LCU测试系统的设计._第2页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于 ARM 勺 LCU 测试系统的设计 摘要:实现了一种全集成可变带宽中频宽带低通滤波器,讨论分析了跨导放大 器-电容(OTAC)连续时间型滤波器的结构、设计和具体实现,使用外部可编程 电路对所设计滤波器带宽进行控制,并利用 ADS 软件进行电路设计和仿真验 证。仿真结果表明,该滤波器带宽的可调范围为 126 MHz 阻带抑制率大于 35 dB,带内波纹小于 0. 5 dB,采用 1. 8 V 电源,TSMC 0 18 卩 m CMO 工艺 库仿真,功耗小于 21 mV,频响曲线接近理想状态。关键词: Butte 随着我国机车控制水平的不断提高,微机控制已经成为我国机车控制的重要控 制方式,

2、而逻辑控制单元 LCU( Logic Con trol Un it) 作为主要完成机车运行逻 辑控制、电路故障记录控制等功能的控制模块,是关系机车安全运行的重要部 件。与传统触点控制电路相比,LCU 具有可靠性高、体积小、通用性好、维护 简单方便等优点。 传统的 LCU 检测包括人力检测、单片机检测和 PC 机通过串口控制开发板检测 1。但是随着 LCU 生产制造水平的提高,传统的检测方法已经不能很好地完成 测试任务。 ARMS 有设计开发周期短、功耗低、性能优越等特点,能够满足 LCU 检测的要 求。基于 Linux 操作系统开发的通用 LCU 检测软件,可以提供多层次、多场合 的复用,可节

3、省设备成本,具有巨大的市场前景和经济效益。 1 系统设计原理 LCU 检测就是对 LCU 内部运行逻辑做出测试并进行故障诊断。测试系统通过向 被测试的 LCU 发出初始命令,并查看其输出结果是否与参考输出相同,从而判 断被测试的LCU 逻辑是否正确。 本文沿用传统继电器控制中的部分概念进行软件分析。传统硬件继电器触点分 为“常开触点”和“常闭触点”两类。一条线路的运行结果会反映到另外一个 线圈上,因此,继电器控制的输出可以用线圈表示。本文沿用硬件继电器中的 名称进行软件逻辑分析。在程序中以 BOO 变量 TRUE 表示触点开状态,FALSE 表示触点闭状态。 线路上的信号都可以采用二进制表达,

4、所以测试的范围会根据线路上触点个数 呈现指数增长。对于要求不太严格的控制信号,只要求在适当的条件下,得到 开通或闭合的结果,其动作的条件为充分不必要条件。对于要求严格的控制信 号,不仅要求在确定的条件下得到应有的结果,而且要保证这个条件是充分必 要条件。因此,很大程度上测试可能会遍历触点的所有组合,测试的总体消耗 时间就会扩充到很大的时间范围。假设一条线路的信号流动经过时间值为 ns, 则计算一条包含 20 个触点的线路的全部测试时间为 220ns。 可见,测试情况的选择十分重要。测试复杂性的主要矛盾在于:需要证明充分 必要条件的线路的多少以及该线路的触点的多少。工业标准反映在程序中的情 况就

5、是保留测试的选择性,便于在后续工作中进行选择和修改。此外,控制程 序的算法,进行复合运算,提高测试的效率也是关键所在。本系统的硬件框图 如图 1 所示 2 嵌入式 Linux 操作系统移植 交叉编译器的设置是嵌入式系统开发的第一步。所谓交叉编译就是在一种体系 结构的机器上编译出能够运行于另一种体系机器上的代码。若要开发在 ARM 目 标板上运行的程序,无论是操作系统还是应用程序,都必须是基于 AR 附系指 令的二进制代码2。但是直接在 ARM 目标板上开发程序,无论是程序运行速度 还是调试手段,都严重制约了开发效率,有些程序的编写更需要在 PC 机上才能 完成。交叉编译的作用,就在于在 PC

6、机上开发程序,交叉编译后,再放置到 ARM 目标板上去执行。编译顺序如图 2 所示。 搭建 ARM 交叉编译器的步骤: 编译安装 bin utils ; 安装 linux 的头文 件;(3)编译安装 gcc 的 c 编译器;编译安装 glibc ; (5)编译安装 gcc 的 C、C+编译器。 Boot-loader 是 RAM 芯片的引导程序,它的作用是加载操作系统。两个著名的 开源Boot-loader,其中一个是 U-boot,它的形式就是一个代码包,包中按照 Linux 般的编程习惯和不同的目标板,将相应的汇编和 C 语言代码罗列在对 应的文件夹下,让开发人员自行配置。 修改 U-bo

7、ot 的过程: (1)基本的硬件初始化; (2)跳转到 Stage2 的 C 入 口点; (3)定义函数 Nand_init ; (4)跳转到 Kernel。 Linux 内核就是一个可执行的 Linux 操作系统的套件集合,简称内核3。套件 的选择,就是内核的配置。内核的配置表明了内核的可调整性。根据 Linux 软 件的开发规则,可到 Linux 内核源码包的路径下,在终端使用配置命令进行内 核配置。在配置内核的时候,需要定义内核启动的命令行。 3 LCU 检测系统应用程序 3.1 软件设计及其要素 软件的应用设计,就是确定软件的各个部分及各部分之间的相互关系,信息在 其中发送、传递和接收

8、,以及部分运动发展的走向和趋势,最终得到可以预见 的结果4。它应该遵循下面四个基本要素:名称、问题、解决方案效果。 面向对象的软件开发,从不同的对待问题的层次出发能得到不同问题的解决方 案。其基本工作流程如图 3 所示。 3. 2 定义基本的类和对象及人机界面的设计 在需求分析的说明中,最常出现的三个名词分别是触点、测试和线圈。每个测 试包含了不同的线圈,每个线圈又分别由触点组成。所以,触点、线圈和测试 能够分别抽象出来做成单独的类。触点必须有 ID、常开/常闭的类型和运行中 处于的值都应该在属性中出现。测试的 ID 应该能够区分是哪一次测试,并且记 录下所包含触点的初始值以及标准情况下结果的

9、预计值。线圈则以触点和测试 作为成员变量。 首先设计用二维数组来模拟测试与触点的关系。假设数组的横向和纵向表示分 别为测试和触点,则某个线圈的设计如图 4 所示。 对照实际情况,可以使用二维数组进行描述。触点的加入和删除就是列的插入和 删除运算,测试的加入和删除就是行的插入和删除运算。对某线圈的实验就是 把每行遍历一遍,结果对照预计值进行逻辑判断。但这仅仅是表达了单个线圈的 情况,多个线圈则呈现如图 5 所示的书页式的结构。 直观上看,重叠配置的线圈就像是检查手册的一封封页面,测试整个系统的方 法就是翻弄这本“书”,从头至尾把所有的线圈遍历一遍。 3.3 序列化存储类 serial 和链表类

10、如果延续这样的思路,则关于数组的操作会产生新的问题: C 语言中定义数组 必须先确定数组的大小才能分配合适的内存。例如,要得到一个 mKn二维数组, 则必须在编译时确定 m 和 n 的大小,但实际上要求 m 和 n 是可变的。 由于文件是测试系统内部调用的接口,应该先沿着采用文件来登记测试项目的 结论进行分析。采用序列化技术能够简单而方便地实现文件存储。序列化是指 将对象实例的状态存储到可持久保持信息的物理设备的过程,其特点就是线性 存储。序列化技术实现了文件的存储,同时它也给出了一种思路:把所有一切 都统一对待,变成一根主线。应用到“二维结构”上就是将二维表变成一维的 大表,同时用指针来保持

11、逻辑的连接。如图 6 所示。 0 但序列化只提供链型的存储形式,只能用一维的链表模拟二维数组,因为不知道 二维链表的指针应该如何安排。 决定采用链式联系的方法:用指针来实现连接。但是指针的传递跨越了类,因 此有必要把链式结构直接抽象成类,产生定义触点链表类、测试链表类和线圈 链表类,并将它们抽象出一个基本的链表类,实现链表基本的操作,再从它派 生出上述三个链表类。 3.4 计算预计值 测试随意地更改其所包含的触点,随之变动的是测试的预计值。这可以采取人 工输入来实现, 但是如果用表达式字符串来表达测试的逻辑计算, 可以通过字 符替换的方法让机器来实现。 表达式字符串中间必须有触点的 ID 名字,常闭触点的名字前加“ ,测试线 路的“与”逻辑用字符“ *”来表示,或逻辑用字符来表示(也可以选择 其他的计算字符),用括号表示优先的线路逻辑 ,空格是人性化的适应性定义。 这样即可以表达出线路的逻辑。 计算预计值的算法如下: 输入目标字符串。 首先去空格。 (3)用触点的状态值替换触点 ID,如果是 FALSE 替换成 F,如果是 TRUE 替换成 T。 开始循环:F*F 替换成 F F*T 替换成 F T*F 替换成 F T*T 替换成 T F|F

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论