APP下载

ARM嵌入式智能控制器的设计与实现

2022-02-23程长流

通信电源技术 2022年24期
关键词:嵌入式内存芯片

程长流

(杭州宝叶环境建设有限公司,浙江 杭州 311100)

0 引 言

利用嵌入式系统的智能控制器、各种工业单元的安装调试及远程线上实时监控系统与故障侦测的技术,也可以及时快速发现异常及有效修复系统故障,确保所有工业系统都始终处于运作及正常。同时,可以减轻专业维修作业人员工作的繁重负担,其优势比较明显[1]。

1 ARM嵌入式智能控制器的设计概述

1.1 ARM嵌入式硬件系统的功能

工业应用程序提供的工业智能控制系统一般包括以下几种功能:一是多路模拟量数据和开关量信号的自动实时监控采集处理以及显示;二是通过控制单元或其他主机输出控制单元的命令信息,如启动和停止;三是自动收集日志和自动记录作业状态数据;四是发送故障记录警报消息;五是自动存储历史数据等;六是时间开关设备等。同时,应具有网络数据远程传输控制和网络软件远程控制安装与数据更新2种功能。传统上的智能控制器系统通常由嵌入式8位单片机实现,但随着控制器实际编程操作功能的日益复杂集成化程度的进一步提高,尤其主要是单片机在同时实现了大量的数据自动采集分析和自动存储、彩色图形显示交互系统和串行网络的通信处理等各方面,很难单独实现基于单片机平台的远程实时自动化控制[2]。因此,理想上的方案一般是采用基于32位嵌入式ARM处理器。

1.2 ARM嵌入式硬件系统的结构

作为1套完整嵌入式电子系统互连的重要载体,嵌入式硬件系统互连中所用的印刷电路板(Printed Circuit Board,PCB)层对硬件芯片之间都担负着重要电气元器件连接板的承载作用。如果要真正制造研发出1块具有卓越的性能、可靠性度和系统稳定性能的表面连接板,必须事先具备有关电路、电磁兼容性技术和电路信号完整性问题的理论知识,并与实际经验相结合。通常还要求硬件工程师具备较为熟练实用的嵌入式电子设计自动化(Electronic Design Automation,EDA)绘图工具,以便快速设计1款高质量的PCB板,并能够为开发整个嵌入式系统硬件平台奠定最坚实可靠的基础。

在硬件抗干扰技术中,最常用的方法是光电隔离。在嵌入式系统中使用光电隔离方法的步骤为接收到外部干扰杂波信号时,系统的输入和输出端子与可以隔离信号和噪声的光接口相连。中央处理器(Central Processing Unit,CPU)系统很容易被驱动电路干扰[3]。此时,通过光路隔离CPU和电源电路可以起到抗干扰的作用。在长期的传输过程中,内建的传输信号系统可能会受到干扰。使用电缆连接远端设备时,设备之间的整地电位会发生差异,以产生回流,从而导致微分模式的干扰应力,因此采取隔离是确保长期传输可靠性的最佳措施。

正确选择一套具有最强大的抗干扰防护能力的电源系统,以大大减少电磁波对电源产生的谐波干扰。具体技术措施则包括选择一台可为整个电力系统中提供一个稳定输入电压源的三相交流稳定的电源,防止出现影响电网系统稳定性功能的系统过电压或电源欠直流电压问题。在电网无法连接到隔离电源网络时,隔离电源变压器用作于隔离电源,从而降低分布式容量的影响,并提高其在正常模式下的抗干扰能力。

2 ARM嵌入式智能控制器的设计方案

智能调节器中的软件部分主要包括系统启动自检模块、系统自动初始化自检模块、实时系统时钟及显示、IIC键盘、串行总线通信、液晶显示器、网络通信、数据自动收集检测和控制、数据的存储查询、硬件故障记录管理以及硬件自动配置升级系统等模块。对于主流ARM系统,主要包括以下4个级别,分别是引导加载程序、系统软件、图形用户界面以及较高级别的应用程序软件。在执行基本结构体系结构时,应将其视为一个整体,并从不同级别执行最高级别的系统,以实现总体效果的最佳选择,主要包括串行总线通信、液晶显示器(Liquid Crystal Display,LCD)、网络通信、自动采集和控制数据、数据存储和查询、硬件故障记录以及硬件自动配置和更新。

首先,利用标准的超高速集成电路硬件描述语 言(Very-High-Speed Integrated Circuit Hardware Description Language,VHDL)对内部集成电路(Inter-Integrated Circuit,I2C)进行硬件电路的设计,并将其数据记录在复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)芯片中。它的主要作用是完成对外部接口的输入/输出信息的采集,并与外部主机进行串口通信[4]。按照这个协议标准,记录了如数据传送和数据串行传输、数据位接收和发送、数据确认位的接收等。在进行调试时,要注意SDA与SCL信号的时序关系。在这样的工作模式下,处理器只能通过查询等方式来判断是否成功地按下了按钮,所以在设计时,利用计时装置可以读出I2C接口芯片中存储的数据。另外,该接口还可对32台系统开关进行实时控制。

图形用户界面(Graphical User Interface,GUI)系统主要包括高度客制化的XWindows、MiniGUI、OpenGUI、QT/Embedded等。每个GUI都有自己的特性,必须仔细考虑选择。第1个系统在运行时占用大量系统资源,而使用本地代码将进一步提高其运行功耗,因此主要用于机顶盒等音视频设备。对于第2个系统,主要用于提供轻量级GUI支持系统。因此,在设计基于ARM的软件和硬件系统时,应综合考虑各种条件,良好的人机交互设计为系统提供了便利。嵌入式系统中的GUI设计应综合考虑3个因素,即代码占用资源、GUI响应速度以及易用性。如果移植了高级图形界面源代码,那么将占用太多资源,并且响应速度相对较慢。此设计使用面向对象的设计方法并充分定义了某些数据结构,因此图形显示不仅满足要求,而且具有良好的可扩展性。

嵌入式操作系统主要类型包括VxWorks、Linux和嵌入式WinCE。在具体选择系统时,首先应先深入分析研究这3种类型操作系统之间的主要优缺点,了解它们的基本功能,并有针对性地设计软件系统。Linux操作系统的设计是近年来增长速度最快、应用最广泛的,其主要是性能要更高,这一点使其成为用户选择操作系统的一种重要决定因素。WinCE是其中一款适用于整个环境有限资源使用的多线程、完全无优先级操作系统和多任务操作。开发起来既简单方便又十分快速,但却也同样存在运行成本相对过高等的致命缺点。对于VxWorks软件来说,它同样具有一个非常好用的实时性,而且价格也非常高,因此没有得到广泛的开发和使用。在软件设计中,首先按照所定义的数据结构来确定各界面的显示数据和窗口处理的函数。在点击系统按键之后,系统会根据当前的键值、当前窗口编号和当前点击坐标来决定编号和当前值。从视窗的资料区中提取要显示的资料,并按视窗及点击坐标号码进行缓存。LCD界面可以直接从窗口缓冲中提取和显示数据。

根据数据处理在“显示”窗口中的展示,可以将显示模式分为2种类型。一种是使用具有良好一致性的上述显示方法,另一种是单独解决。因为在显示的界面之间,某些界面的数据处理很少,而有些界面的处理量很大,例如参数编辑窗口界面。现在,这些窗口必须独立处理。在实际工程中,合理地使用这2种显示方法可以在复杂行为下方便地处理人机交互。通常,系统顶级主窗口以统一视图显示,并且可以更好地单独控制图纸窗口。

3 ARM嵌入式智能控制器的设计实现策略

ARM嵌入式智能控制器内建系统采用了特殊设计的内建处理器,可自定义软件和硬件,并特别针对特定应用程序区域而设计。因此,它使系统本身的所有主要部分硬件结构都经过进一步简化,系统体积显得比较瘦小,具有兼容性良好、稳定性良好、低功耗能性的系统特点。硬件系统平台、应用程序软件和ARM操作系统共同构成了嵌入式系统。ARM嵌入式系统具有PC的运行特性,可同时独立开发工作在或集成于嵌入式系统之中的各类硬件系统和相关软件,以实现高效运行。但是,与传统的基于ARM体系结构的嵌入式系统产品不同,需要具有足够高的实时信息实时存储计算能力和实时信息的处理运算能力以及实时功能的调整,嵌入式实时系统未来的2个主要技术发展的方向中包括处理器、接口和测试平台等特定设计的外围设备,因此需要充分考虑嵌入式系统的运行特性和需求。

3.1 智能控制器硬件平台

该显示控制系统按照功能要求,主要包括控制器ARM、液晶显示器、关键控制模块以及从站等。其中,S3c44b0X是主控芯片。该处理器采用ARM7TDMI芯片,为硬件系统的设计和稳定提供了便利。另外,在硬件方面,扩展了存储系统、液晶显示屏、CPLD芯片、串行通信以及网卡通信等[5]。储存系统会选取更大容量的NorFlash,以储存程序代码和系统资料,以便在工作流中进行纪录。LCD采用320x240STLCD,内置ADC控制器和可扩展的外接多路转换器,并能利用CPLD芯片完成接口输入输出(Input/Output,I/O)的扩充。

3.2 实现数据采集及控制

模拟计算机数据的收集过程主要包括2个子部分,即据收集算法设计和数据处理算法。为了尽量保证信息采集数据的计算正确性,本文还采用到了中值滤波计算方法。收集得到的模拟数据中最多可有至少32个数据通道,并且数据通常可由多个系统独立执行,因此建立良好算法的总体设计及结构模型是其必不可少的。综合考虑多路数据复用开关转换的串扰时间、初始开关转换时的串扰时间和数据转换的时间后,采用了多路数据采集的方法。

网络通信系统主要完成网卡芯片的硬件初始化、数据信号的传输处理和数据接收处理以及对网络协议和堆栈协议的移植。该通信系统提供的RTL8019AS网卡芯片中包含了用于数据发送缓冲和数据接收均衡的内存。当数据可通过本地的直接存储器访问(Direct Memory Access,DMA)从网络电缆直接复制传输到网络接口卡和接收缓存中。当缓存过满时,数据就通过远程或DMA方式复制数据到内存中以供处理器来处理。

网络接口控制器(Network Interface Controller,NIC)芯片驱动程序主要通过配置网卡芯片内的一系列寄存器来重置网卡、配置物理地址、配置读/写高速缓存指针以及配置数据传输和接收。在编写程序的过程中,应熟悉控制NIC芯片的前32个地址空间的功能和方法,以便整个NIC芯片系统均能够同时保证其正常工作。驱动程序调试完成后,需要重新移植一个传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol,TCP/IP)的堆栈。在调试过程中,根据网络原理的层次结构以及网络数据的封装和解压缩过程,逐层进行调试,并编写一些网络数据包捕获程序和发送程序,以确保数据在传输过程中是正常的,并且以正确的方式传输。除此之外,异常处理程序还应注意资料的宽度和边界对齐。

3.3 解决相关技术难点

内存管理单元(Memory Management Unit,MMU)存储器通常认为是CPU缓存的一部分,并通常有极少量的存储空间来用于存储一个从虚拟地址映射到真实物理地址之间的相应的表。此表称为翻译页缓冲区。所有的数据要求是将这些数据都发送1次到一个内存MMU,以供用来进一步确定这些数据究竟到底是只位于一个随机存取存储器(Random Access Memory,RAM)设备中还是仅仅只会位于某一个高容量内存设备上。如果所有这些数据都并不在同一个内存空间表中,MMU也同样无法直接生成内存数据分页文件的中断。MMU中其他的2个部分实现的主要功能如下:将内存的虚拟物理地址转换为一个实际物理地址;控制对内存地址的访问次数和操作权限。停用内存MMU设备时,虚拟物理地址直接转换到实际物理地址。

在许多工程应用实践研究工作实例中,使用内存MMU设备解决出解决了基本典型问题,具体如下。将DRAM内存用作大容量内存时,如果插入DRAM存储器的行数和行列均不是整块的,则与DRAM内存的实际物理地址数据将始终不紧密相连,这便给内存程序的实际编程安装和硬件调试上带来造成了一些不便。MMU可以用于将所有它们都转换为一个连续的虚拟地址。

举例代码为

在ARM链接器的命令行里加入“-scovdescription-file–scf”或“-scatterdescription-file”,编译链接后,将产生一个分布装载文件。

4 结 论

在未来很长一段时间内,随着互联网技术的不断发展和进步,对智能控制器设计提出了更高的要求。为了应对这种发展趋势,应进一步支持数控系统的科研工作,以更好地提高嵌入式系统的性能,进而实现嵌入式系统功能的提高和开发。因此,在智能控制器的功能设计中不仅适当补充增加了一些基本的人机界面控制和简单输入或输出控制操作,而且控制系统还需要具有良好性能的计算机通信、数据的查询、自动软件升级、自动菜单打开显示和窗口关闭、自动数据记录查询以及芯片故障信息自动记录,增强充电的安全性和稳定性。

猜你喜欢

嵌入式内存芯片
芯片会议
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
关于射频前端芯片研发与管理模式的思考
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
TS系列红外传感器在嵌入式控制系统中的应用
搭建基于Qt的嵌入式开发平台
多通道采样芯片ADS8556在光伏并网中的应用
内存搭配DDR4、DDR3L还是DDR3?
倍福 CX8091嵌入式控制器