ARM

引 言

运动控制器是运动控制系统的核心部件。目前,国内的运动控制器大致可以分为3类:

第1类是以单片机等微处理器作为控制核心的运动控制器。这类运动控制器速度较慢、精度不高、成本相对较低,只能在一些低速运行和对轨迹要求不高的轮廓运动控制场合应用。

第2类是以专用芯片(ASIC)作为核心处理器的运动控制器,这类运动控制器结构比较简单,大多只能输出脉冲信号,工作于开环控制方式。由于这类控制器不能提供连续插补功能,也没有前馈功能,特别是对于大量的小线段连续运动的场合不能使用这类控制器。

第3类是基于PC总线的以DSP或FPGA作为核心处理器的开放式运动控制器。这类开放式运动控制器以DSP芯片作为运动控制器的核心处理器,以PC机作为信息处理平台,运动控制器以插件形式嵌入PC机,即“PC+运动控制器”的模式。这样的运动控制器具有信息处理能力强,开放程度高,运动轨迹控制准确,通用性好的特点。但是这种方式存在以下缺点:运动控制卡需要插入计算机主板的PCI或者ISA插槽,因此每个具体应用都必须配置一台PC机作为上位机。这无疑对设备的体积、成本和运行环境都有一定的限制,难以独立运行和小型化。

针对这些问题,设计了一种基于ARM+DSP的嵌入式运动控制器。该控制器将嵌入式CPU与专用运动控制芯片相结合,将运动控制功能以功能模块的方式嵌入到ARM主控板的架构,把不需要的设备裁减掉,既兼顾功能又节省成本。该控制器是一种可以脱离上位机单独运行的一种独立型运动控制器,具有良好的应用前景。

1 嵌入式运动控制器的硬件平台设计

嵌入式运动控制器的硬件主要包括两个部分:ARM主控板和DSP运动控制板。这两块控制板通过通用I/O口以总线的方式连接在一起。在设计时,可以分别对ARM主控板和DSP运动控制板进行设计,最后再调试。这种将ARM主控板和DSP运动控制板分开设计和调试的硬件方案,将设计难点分散,使设计和调试更简单。

1.1 ARM主控板部分

本系统采用的ARM芯片为Samsung公司推出的16/32位RISC处理器S3C2440A,主频为400 MHz,最高频率可达533 MHz。ARM主控板以嵌入式处理器S3C2440A为核心,外扩存储器和通用设备接口。ARM主控板的硬件结构框图如图1所示。

ARM+PCL6045B的嵌入式运动控制器设计

通过通用I/O接口与DSP运动控制板通信,实现ARM主控板与运动控制板之间数据的实时双向传送;外部NAND Flash存储器(64 MB),用于存储系统参数及运动指令;NOR Flash存储器(2 MB),用于存放系统运行程序;SDRAM存储器(64 MB),用于存放临时数据;通过串口、以太网接口、USB接口与上位机系统通信,实现两者之间数据的传送;通过LCD接口,实现320×240分辨率液晶屏的图形与字符显示,并具有触摸屏接口,提供友好的人机交互界面;通过I/O扩展接口,提供可编程的数字I/O通道;通过JTAG接口与PC机通信,实现系统运行程序的仿真调试及下载,软件升级接口。

1.2 DSP运动控制板部分

本系统DSP运动控制芯片选用PCL6045B。PCL6045B是一种功能十分强大的DSP运动控制芯片。芯片能够控制四轴,并实现两轴到四轴直线差补、两轴圆弧差补。所有插补计算由芯片完成,上位机只需写入圆弧的参数即可,其多轴插补控制功能特别优秀。系统硬件采用主从式双CPU结构模式。主CPU为ARM处理器,负责键盘、显示、网络通信等管理工作;从CPU为PCL6045B运动控制芯片,专门负责运动控制的处理工作。PCL6045B与ARM的通信是靠读写I/O总线上的几个地址来进行指令和数据的传输。控制系统硬件结构框图如图2所示。

ARM+PCL6045B的嵌入式运动控制器设计

1.3 ARM处理器与运动控制芯片的连接

通过设置引脚IF0与IF1,PCL6045B芯片与不同的CPU相连,如表1所列。

ARM+PCL6045B的嵌入式运动控制器设计

本系统设置IF1:IF0=0:1,CPU连接如图3所示。

ARM+PCL6045B的嵌入式运动控制器设计

2 嵌入式运动控制器的软件设计

本系统可根据被控对象的特征设计不同的模块化用户软件,来满足不同的运动控制任务。模块化软件恰好是Linux操作系统的优点。Linux还可以根据用户的需求实现内核的裁减和定制,源码开放,网络支持功能强大,价格上也更具有竞争优势等。所以该控制器选用Linux作为片上系统(SoC)。但是,Linux并不是一个实时操作系统,因此,通过实时内核补丁RTAI(Real Time Application In-terface),在硬件平台的基础上增加一个实时内核,将Linux内核当作它的优先级最低的任务执行,从而保证运动控制系统的实时性。系统的控制软件分为两个区域:非实时域和实时域。非实时域是建立在普通Linux内核基础上的,其主要包括系统初始化和通信模块。

①系统初始化:进行微处理器的硬件初始化,包括输入/输出接口的配置、具体总线通信方式的配置以及伺服系统相关的接口参数配置。

②通信模块:负责运动控制卡和上位机之间的坐标值、速度值、数控系统的I/O接口状态、报警状态以及数据链表的传输。

实时域建立在RTAI实时内核的基础上。其实时任务通过实时进程的方式来完成,一种为周期性(peri_odic)实时进程,另一种为一次性(one shot)实时进程。实时域主要包括如下4个周期性实时线程:

①状态检测线程(rt_monitor_thread)。本任务对设备运行状态进行检测,负责从I/O端口读入各个连接的I/O设备值,然后将状态写入状态检测缓冲区中,对设备急停、伺服报警、限位信号进行判断,并进行相应的处理。

②插补线程(rt_interpolation_thread)。从译码缓冲区中顺序取得插补数据,然后根据是直线或者圆弧进行插补,插补得到下个周期应该到达的理论坐标值。

③位置控制线程(rt_position_thread)。读取计数器中编码器的数值,得到实际的位置,并与插补器中的理论位置坐标作比较。根据差值调节PID参数,并将具体脉冲输出数写入对应的PWM口的脉冲数寄存器中。

④功能控制线程(rt_function_thread)。功能控制任务利用RTAI实时管道来传递命令和状态信息的功能。通过管道的命令设置实现Linux操作系统对实时部分RTAI的访问,从而实现运动控制器的运行、暂停、给定速度等状态设置。

2.1 软件平台的建立

软件平台是系统应用程序开发的基础。本系统软件平台主要包括:ARM-Linux的移植、串行接口驱动开发、USB接口驱动开发、LCD接口驱动开发、触摸屏接口驱动开发、以太网接口驱动开发、文件系统的移植等。这些软件的开发和移植在很多文献中有详细的说明。

2.2 运动控制函数库的设计

通用运动控制器的功能主要取决于运动控制函数库。要做成一个开放式的运动控制器,必须编写丰富的运动控制函数库,以满足不同的应用要求。运动控制函数库要为单轴及多轴的步进或伺服控制提供许多运动函数,如单轴驱动、两轴直线插补、3轴直线插补、圆弧插补等等。另外,为了配合运动控制系统的开发,还编写了一些辅助函数,如中断处理、编码器反馈、间隙补偿、通用开关量的输入输出等。这样,用户在开发应用程序时就不必再关心底层的东西,只需根据控制系统的要求编制人机界面,并调用运动控制函数库中的函数,就可以开发出满足要求的多轴运动控制系统。

2.3 对Ljnux进行实时化改造

由于Linux不是一个实时操作系统,所以,利用实时内核补丁RTAI(Real Time Application Interface)。RTAI的安装和使用详见参考文献[7]。该控制器所使用的Linux开发环境为ELDK(Embedded Linux DevelopedKit)3.0。Linux内核为Linuxp pc_2_4_devel,而RTAI的版本为24.1.12。由Linux中的init_module()和cleanup_modtde()两个函数加载和卸载实时任务模块,通过这两个函数进行实时线程及其处理函数的创建和回收。其关键程序如下:
ARM+PCL6045B的嵌入式运动控制器设计

2.4 应用软件设计

应用软件主要包括人机交互界面的设计、数控指令的编译解释、按键功能的实现、运动状态的监视等。通过操作系统ARM-Linux,可方便地实现上述功能,并进行多任务的调度。运动控制器根据输入的数控指令文件,将其存入NAND Flash中。ARM处理器通过对数控指令进行译码、速度预处理、粗插补计算等,调用运动控制函数,进而发出控制指令控制步进或伺服系统去控制执行部件进行动作,从而达到实现运动控制的目的。

结 语

本文综合应用ARM嵌入式系统技术、DSP运动控制技术等多种技术开发出高性能的嵌入式运动控制器。该控制器相比传统的基于PC机的运动控制器,具有成本低、体积小、功耗低、功能丰富、运行稳定的特点和优势。以ARM微控器和PCL6045B为核心的嵌入式运动控制器,采用Linux操作系统,经过对其进行实时化改造,使系统能很好地进行多任务处理,保证了系统的实时性。该控制器能够实现高速和高精度的运动控制需求,具有良好的运动控制性能。该运动控制器的设计,为读者提供了一种良好的解决方案,在运动控制领域具有广阔的应用前景。

来源: 中国百科网

围观 544

运动控制系统已被广泛应用于工业控制领域。近年来,工业控制对运动控制系统的要求越来越高。传统的基于PC及低端微控制器日渐暴露出高成本、高消耗、低可靠等问题,已经不能满足现代制造的要求 。随着嵌入式技术的日益成熟,嵌人式运动控制器已经初露锋芒。基于ARM技术的微处理器具有体积小、低成本、低功耗的特点,决定其在运动控制领域具有良好的发展前景。

PCL6045BL是一种新型专用DSP运动控制芯片,它具有强大的数据处理能力和较高的运行速度,可以实现高精度的多轴伺服控制。为解决精密制造对低成本、可移植性强的通用型多轴数控系统的迫切需求,文中给出一种基于ARM 微处理器S3C2440与DSP专业运动控制芯片PCL6045BL构成的嵌入式四轴运动控制器。该运动控制器具有高性能、低成本、体积小、可独立运行等特点,可以满足运动控制系统高速、高精度的 要求。它可广泛应用于雕刻机、机器人、绣花机以及数控加工等工业控制领域。

为解决精密制造对低成本、可移植性强的通用型多轴数控系统的迫切需求,给出一种基于ARM微处理器S3C2440和专用DSP运动控制芯片PCL65045BL组合的嵌入式四轴运动控制器。硬件上该控制器采用ARM+DSP的主从式双CPU结构,结合ARM在人机界面显示、通信接口方面的优势以及PCL6045BL高控制精度的优点。软件上在S3C2440上移植μC/OS-II实时操作系统来管理运动控制系统。该控制系统通用性较强,可广泛应用于雕刻机、机器人、绣花机以及数 控加工等工业控制领域。

1 系统总体设计

嵌入式四轴运动控制器主要由硬件部分和软件部分构成。

硬件主要包括S3C2440嵌入式主控板和PCL6045BL运动控制板两个部分。S3C2440嵌入式主控板和PCL6045BL运动控制板之间通过通用的IDE通信接口进行连接。

软件方面在硬件平台的基础上移植S3C2440实时嵌入式操作系统,设计Boot Loader、外设驱动以及运动控制系统的应用程序。采用上述的软硬件平台,嵌入式运动控制器可以达到开放性能好、精度高的要求。本嵌入式四轴运动控制器的结构如图1所示。

ARM+DSP的嵌入式四轴运动控制器设计
图1 嵌入式四轴运动控制器的构成

ARM具有丰富的片内外围电路,如USB接口、IIS接口、LCD控制器等,在人机界面的显示、通信接口以及系统移植方面具有更强大的功能。PCL6045BL运动控制芯片速度快,可靠性高,性能好,在运动控制方面有很大的优势。

实时操作系统μC/OS-II包含了实时内核、任务管理、时间管理、任务间通信同步和内存管理等功能,可以使各个任务独立工作,互不干涉,很容易实现准时而且无误地执行,使实时应用程序的设计和扩展变得容易,使应用程序的设计过程大为减化 。将S3C2440处理器、PCL6045BL 以及μC/OS-II三者的优势应用到本嵌入式四轴运动控制器中可以使其具有强大的功能,并缩短开发时间。

本嵌入式四轴运动控制器以S3C2440为主控平台,在ARM上移植μC/OS-II实时操作系统来进行人机界面的显示、I/O的管理、任务问的通信、指令的编译等工作。PCL6045BL运动控制模块主要负责位置控制,插补驱动,速度控制。用户的指令通过S3C2440指令编译系统的编译,通过与PCL6045BL之问的专用通信接口来控制DSP运动控制芯片发出脉冲以达到使伺服电机高速运行。

2 系统硬件设计

2.1 系统硬件平台设计

在控制系统中,以S3C2440处理器为主控核心,PCL6045BL运动控制芯片为从CPU,构建的嵌入式运动控制器结构如图2所示。

ARM+DSP的嵌入式四轴运动控制器设计
图2 系统硬件

S3C2440是一款16/32位ARM920T RISC处理器,它实现了MMU、AMBA总线和独立的16 KB指令和16 KB数据哈佛结构的缓存,每个缓存均为8个字长度的流水线。S3C2440提供全面的、通用的片上外设,不需要配置额外的部件。PCL6045BL运动控制芯片,由NPM公司生产,是一种通过总线接收CPU命令、并产生脉冲控制步进电机或脉冲驱动型伺服电机的CMOS大规模集成芯片,可提供多种输出运动控制功能,包括连续、定长、回原点等输出方式。PCL6045BL可以实现2~4轴线性插补及任意两轴圆弧插补。在这种主从结构框架基础上,主CPU S3C2440主要负责数据的存储、人机界面的显示、网络通信等管理工作。从CPU PCL6045BL输出的脉冲发送给4个轴的伺服驱动器。S3C2440只需要通过发送简单的指令给PCL6045BL,便可实现各种控制功能。

2.2 ARM 与PCL6045BL的连接

PCL6045 BL与ARM的通信是通过读写I/O总线上的几个地址来进行指令和数据的传输。PCL6045BL每个轴的内部寄存器地址由A0、A1 和A2地址线输人决定,其控制地址范围由输入端子A3和A4进行选择。因此在这种主从结构的设计中,ARM与PCL6045BL的连接如图3所示。

ARM+DSP的嵌入式四轴运动控制器设计
图3 PCL6045BL与S3C2440的接口电路

2.3 I/O接口电路

嵌入式四轴运动控制器与伺服电机之间是通过I/O接口电路进行连接的。I/O接口电路主要任务是完成输入信号的光电隔离以及对输出脉冲的驱动。设计中采用光电耦合器将PCL6045BL芯片与后面的伺服电机驱动器以及其他控制反馈等线路隔离。由于光耦合器输入输出问互相隔离,电信号传输具有单向性等特点,因而具有良好的电绝缘能力和抗干扰能力。又由于光耦合器的输入端属于电流型工作的低阻元件,因而具有很强的共模抑制能力。将PCL6045BL的输出信号(如CP、CW等)和输入信号(如报警、限位等)都使用光耦器件与PCL6045BL隔离,这样能有效地防止干扰信号进入主芯片损坏PCL6045BL。

3 软件设计

系统软件部分由μC/OS-II实时嵌入式操作系统及相关应用软件组成。μC/OS-II实时嵌入式操作系统仅仅提供了一个任务调度的实时内核,因而需要自行开发一系列与系统运行相关的设备驱动程序、API函数及应用程序,才能将μC/OS-II扩展为一个完整、实用的实时操作系统。

3.1 Boot Loader的设计

嵌入式系统中,通常并没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由Boot Loader来完成。Boot Loader是系统加电后运行的第一段代码,负责初始化系统并启动操纵系统,相当于PC机的程序。Boot Loader初始化硬件设备,建立内存空间的映射图,为最终调用操作系统内核准备好正确的环境。

Boot Loader分为阶段1和阶段2两个部分,与CPU核以及存储设备密切相关的处理工作通常都放在阶段1中,且可以用汇编语言来实现;而阶段2则通常用C语言来实现一般的流程以及对板级的一些驱动支持。

阶段1主要进行定义入口、设置中断向量、系统寄存器配置、初始化寄存器等操作。而阶段2主要完成调用初始化函数、初始化闪存设备、初始化内存分配函数等操作。Boot Loader是嵌入式系统软件开发的第一个环节,把实时操作系统和硬件平台紧密地结合起来,对于嵌入式系统的软件开发尤为重要。

3.2 μC/OS-II在S3132440的移植

嵌入式实时操作系统μC/OS-II是一个源代码公开的多任务实时操作系统内核,它简化了应用软件的设计,使控制系统的实时性得到保障。良好的多任务设计,有助于提高控制系统的稳定性和可靠性。所谓移植,就是通过修改操作系统内核与处理器相关部分的源代码,使一个实时内核能在微处理器或微控制器上运行。μC/OS-II的文件系统结构包括核心代码部分,配置代码部分,处理器相关代码部分,如图4所示。其中处理器相关代码部分包括OS_CPU.H,OS_CPU.A.ASM,OS_CPU.C.C 3个文件。将μC/OS-II移植到S3C2440只需要修改与处理器相关的代码即可。

ARM+DSP的嵌入式四轴运动控制器设计

3.3 系统应用程序设计

实时应用程序的设计过程包括如何把问题分割为多个子任务,每个子任务都是整个系统的一部分,都被赋予一定的优先级,有自己的一套CPU寄存器和堆栈空间。一个任务,也叫一个线程,是一个简单的程序,该程序可以认为CPU完全只属于自己。在本设计中将任务划分为人机界面的设计、数控指令编译解释、伺服单元采集任务、状态监视等。μC/OS-II可以按照优先级启动各个任务,并通过内核来完成任务之间的调度。系统的基本流程如图5所示。

S3C2440根据系统的应用程序对指令进行解释,调用运动控制函数,继而PCL6045BL发出脉冲控制伺服电机去控制执行机构动作,实现运动控制的结果。

ARM+DSP的嵌入式四轴运动控制器设计
图5 用户程序流程

3.4 NC代码解释

运动控制器接受来自上位机发送过来的加工文件,但加工文件指令在程序中不能直接被识别,在执行指令之前必须先对其进行解析译码。解释器的主要功能就是将用户程序以程序段为处理单位,将程序中的轮廓信息、运行速度和辅助功能信息,转换成嵌入式运动控制器能够执行的格式。解释过程主要包括数控文件的读入、词法分析、语法分析以及加工信息存储数据结构等过程,如图6所示。

ARM+DSP的嵌入式四轴运动控制器设计
图6 程序处理流程

4 实例分析

上位机通过RS485总线与S3C2440连接,把NC指令文件输入到ARM 中,经过NC代码解释器,变成PCL6045BL能够识别的代码,从而完成规定的运动控制功能。用NC代码编写如下加工程序:

N001 COO X15 Y25//起始点选定

N002 G18//XY平面选择

N003 G90 G01 X15 Y5//准备直线插补

N004 X30 Y5//(15,5)到(30,5)

N005 X30 Y15//前行至点(30,15)

N006 X45 Y15//前行至点(45,15)

N007 X45 Y5//前行至点(45,5)

N008 X60 Y5//前行至点(60,5)

N009 X60 Y25//前行至点(60,25)

N010 X15 Y25//回到始点(15,25)

根据上面所给的代码可以完成如图7所示的多点之间直线插补的功能。

ARM+DSP的嵌入式四轴运动控制器设计
图7 多线段直线插补运动轨迹

5 结语

该运动控制器的硬件结构是基于微处理器S3C2440和PCL6045BL运动控制芯片设计的,它较好地发挥了ARM处理器的高性能、低成本和运动控制芯片的高可靠性、开发周期短的优点;在控制器硬件平台上移植μC/OS-II实时操作系统既能使整个软件系统结构简结、层次清晰,又能很好地达到运动控制实时性的要求。

来源: elecfans.com

围观 491

众所周知,ARM公司在经典处理器ARM11以后的产品改用Cortex命名,并分成A、R和M三类,旨在为各种不同的市场提供服务,正好是ARM公司英文简写的三个字母。Cortex系列属于ARMv7架构,这是到2010年为止ARM公司最新的指令集架构。(2011年,ARMv8 架构在TechCon 上推出)ARMv7架构定义了三大分工明确的系列:“A”系列面向尖端的基于虚拟内存的操作系统和用户应用;“R”系列针对实时系统;“M”系列对微控制器。OK,我们下面要介绍的“猪脚”是Cortex系列下的Cortex-M家族处理器,看官且听我娓娓道来。

一,Cortex M家族发展

经过多年的发展,Cortex-M家族下已从最初的讲究最低成本的Cortex-M0和追求最高能效的Cortex-M0+型号处理器,到目前讲究灵活性的Cortex-M33以及有着最高性能Cortex-M7型号处理器,已繁衍出7种型号的处理器产品,且性能参数各不相同,如性能比较下图所示,

简述Cortex-M0—4各个优势

当然,看一个处理器的优缺点,不单单只是从性能上来评价其好坏,而重要是合不合适,比如,性能好的往往功耗很大,散热就是个问题,而功耗低的,能效高,性能却又不给力。所以,在选取处理器时要看的是自己的产品倾向什么功能,在哪方面应用,等等,这样根据自己的实际需要选取合适的处理器。
Cortex-M家族人数如此众多,且性能各异,满足了不同客户的需求,使得ATMEL公司拥有 40 个以上的 ARM 合作伙伴,包括 NXP Semiconductors、STMicroelectronics、Texas Instruments 和 Toshiba 等领先供应商。使用标准处理器使 ARM 合作伙伴可以创建具有一致体系结构的设备,同时使它们可以专注于创建优秀的设备实现,也就是说大家的设备核心是一样的·,使用同一家公司的处理器可以使各自的设备能够很好的兼容,使供应商不必因设备之间的兼容而担忧,使他们专注创造出更优秀的设备。

二,为什么选择

下面主要简单介绍针对目前在众视野比较流行M0,M3,M4,并讲一讲大家选择它们的理由

1, 为什么选择Cortex –M0

说它是能耗最低的最小ARM处理器可谓实至名归,因为Cortex-M0 处理器在不到 12 K 门的面积内能耗仅有 85 µW/MHz(0.085 毫瓦),这在整个ARM处理器系列中,无人能望及项背,M0 的代码密度和能效优势意味着它是各种应用中 8/16 位设备的自然高性价比换代产品,同时保留与功能丰富的 Cortex-M3 处理器的工具和二进制向上兼容性。

简单,M0指令只有 56 个,这样便可以快速掌握整个 Cortex-M0 指令集(如果需要);但其 C 语言友好体系结构意味着这并不是必需的。可供选择的具有完全确定性的指令和中断计时使得计算响应时间十分容易。

M0优化的连接性,设计为支持低能耗连接,如 Bluetooth Low Energy (BLE)、IEEE 802.15 和 Z-wave,特别是在这样的模拟设备中:这些模拟设备正在增加其数字功能,以有效地预处理和传输数据。

2, 为什么选择Cortex-M3

作为少有的具有高性能和低动态能耗,Cortex-M3 处理器提供领先的功效:在 90nmG基础上为12.5DMIPS/mW。将集成的睡眠模式与可选的状态保留功能相结合,Cortex-M3
处理器确保对于同时需要低能耗和出色性能的应用不存在折衷。

全功能性让M3处理器执行Thumb®-2 指令集以获得最佳性能和代码大小,包括硬件除法、单周期乘法和位字段操作。Cortex-M3 NVIC 在设计时是高度可配置的,最多可提供240 个具有单独优先级、动态重设优先级功能和集成系统时钟的系统中断。

3为什么选择Cortex-M4

ARMCortexM4处理器是由ARM专门开发的最新嵌入式处理器,在M3的基础上强化了运算能力,新加了浮点、DSP、并行计算等,用以满足需要有效且易于使用的控制和信号处理功能混合的数字信号控制市场。其高效的信号处理功能与Cortex-M处理器系列的低功耗、低成本和易于使用的优点的组合,很好的满足了专门面向电动机控制、汽车、电源管理、嵌入式音频和工业自动化市场的新兴类别的灵活解决方案。

总结一下,还是前面所说的在选取处理器不要单单看这款处理器的好坏,合适才是最重要的!

来源: 中电网

围观 611

人机交互界面的种类较多,如键盘、数码管显示器、液晶显示器及带触摸的液晶屏等。决定人机交互接口方式的主要因素是成本和实际应用的需要。近十年来,液晶触摸屏以功耗低、重量轻、精度高和良好的人机界面等技术特点, 在电子设备特别是手持类电子产品中得到了普遍应用。带触摸的液晶屏,只要能测量出触摸点的坐标位置,即可根据屏上对应坐标点的显示内容或图符获知触摸者的意图, 通过微处理器处理声音、图像、文字及触摸输入控制等信息,使之成为能进行信息存取、输入和输出的集成系统。基于微控制器与液晶模块的硬件接口设计及软件编程在智能系统设计中有着重要的应用价值。

ARM 微处理器,运算速度快、资源丰富、性价比高,是当前较为流行的嵌入式控制器。

本文介绍的一款基于ARM7微处理器LPC2148 接口的3.2 寸液晶触摸屏,具有精度高、彩色显示逼真、应用灵活等特点,可作为中高档电子产品字符、图像的显示及人机对话的窗口。

1 总体设计方案
  
系统的总体设计方案如图1 所示。液晶触摸屏系统由31 2寸TFT 液晶屏模块、触摸屏和ARM 微处理器控制板组成。
  
触摸屏由触摸传感部件和触摸屏控制器ADS7843 组成,触摸传感部件安装在LCD 液晶屏前面,用于检测用户触摸位置,用户触摸信息送往ADS7843 控制器,并转换成触点坐标,送给ARM7 控制板,LPC2148 微处理器与液晶及触摸模块相连接,根据接收到的触摸信息,进行信号运算和处理,输出蜂鸣器等控制信号,控制液晶屏实现用户画面和数据的显示。
  

基于ARM微处理器的液晶触摸屏的设计
图1 液晶触摸屏系统总体设计方案

2 电路及原理
  
2.1 液晶触摸屏原理及ADS7843 触摸控制电路
  
原理如图2 所示。
  
U1为3.2 英寸TFT液晶模块,+3.3V 供电;内置SSD1289 液晶控制器;液晶屏分辨率为240×320 像素;屏幕颜色26 万色;屏幕尺寸为57mm×79mm, 有效显示面积为51mm×65mm.SSD1289 液晶控制器由16 位并行数据接口、内部控制器和LCD 驱动器组成。液晶数据传输方式为16 位并行方式,LPC2148 的16 根I/ O 口线分别接液晶模块的DB0~DB15.PWM 为亮度驱动控制输入,经9013 三极管放大后作为液晶背光。
  
触摸屏部分由触摸传感部件和触摸屏控制器ADS7843( U2) 组成。
  

基于ARM微处理器的液晶触摸屏的设计
图2 液晶模块及触摸电路原理

  
触摸传感部件是一个四线电阻屏幕,屏上引出四根线,分别对应X 轴和Y 轴各两根。测量X 方向的时候,将X + , X- 之间加上参考电压Vref , Y- 断开,Y + 作为A / D 输入,获得X 方向的电压;同理测量Y 方向的时候,将Y+ , Y- 之间加上参考电压Vref,X - 断开,X + 作为A/ D 输入,进行A/ D转换获得Y 方向的电压,之后再完成电压与坐标的换算,整个过程类似一个电位器,触摸不同的位置分得不同的电压。
  
以上所需要的参考电压、A/ D转换等工作由触摸屏控制器ADS7843 直接完成的,微处理器只需将相应的控制命令传输到ADS7843 即可,以获得相应电压的数据。
  
ADS7843是TI公司生产的四线电阻触摸屏转换接口芯片。它是一款具有同步串行接口的12 位取样模数转换器。在125kHz 吞吐速率和2.7V 电压下,功耗为750LW.在关闭模式下,功耗仅为0.5LW.由于具有低功耗和高速等特性,被广泛应用在电池供电的小型手持设备上。
  
ADS7843 与LPC2148的连结关系如图3 所示。ADS7843工作电压+ 3.3V, 转换器的模拟输入( X+ 、Y+ 、X- 、Y- )是一个4 通道多路器;DCLK(第4 引脚) 是外部时钟输入引脚;CS(第3 引脚) 是片选输入端,低电平有效; DIN(第2引脚) 是串行输入,控制数据通过该引脚输入;DOUT第16 引脚)是串行数据输出,用于输出转换后的触摸位置数据,最大数为二进制的4095; PENIRQ(第15 引脚) 是PEN中断,用于触摸显示屏后引发一个中断。
  
2.2 微处理器控制电路
  
原理如图3 所示。
  
基于ARM微处理器的液晶触摸屏的设计
图3 微处理器控制电路原理图

  
(1)LPC2148微处理器
  
ARM 处理器占有市场份额高,具有性能高、成本低、能耗省等特点。图3 中LPC2148(U3)是PHILIPS 半导体公司推出的一个基于ARM7TDMI- S 核、支持实时仿真和嵌入式跟踪的32 位嵌入式ARM7 微处制器。该处理器内置了宽范围的串行通信接口、14 通道10 位ADC、1 通道10 位DAC、45 个高速GPIO 线以及多达9 个边沿或电平触发的外部中断管脚。处理器集成有40kB 的片内SRAM、512kB 嵌入的高速Flash 存储器,128 位宽度的存储器接口和独特的加速结构使32 位代码能够在最大时钟速率下运行, 为通信网关、协议转换器、软件modem、语音识别、低端成像等应用提供大规模的缓冲区和强大的处理功能,适合于彩色液晶的图片处理和数据存储。
  
(2)复位和晶振电路
  
LPC2148 第57 脚为复位信号输入端,采用低电平复位,由C3、R9、R10、K1 构成的复位电路为系统提供上电复位和强制复位功能,K1 为系统强制复位按键。晶振电路由X1(12MH z) 、C7、C8 构成,支持微控制器芯片内部PLL 及ISP功能;X2(321 768KH z) 、C9、C10 为RTC(实时时钟) 提供基准时钟。
  
(3) 资源分配
  
LPC2148 的P0.8~ P0.23 作为16 位数据线( D0~ D15) ,经JP1 插座与液晶模块的DB0 ~ DB15 连接;P0.0、P0.26、P0.28~ P0.31 作为液晶模块的控制口线使用,经JP1 分别与液晶模块的PWM、CS、RESET 、RS、RD 和WR 连接;P0.27、P1.16~ P1.20 用于触摸屏控制,通过JP1 的连接分别接ADS7843 的BUSY、7843- CS ( CS ) 、DCLK、DIN、INT( PENIRQ) 和DOUT 引脚。
  
P1.26~ P1.31 作为JTAG 功能使用,JP2 为微处理器JTAG 程序调试及下载端口。
  
P0.25 作为蜂鸣器控制口线,蜂鸣器电路用于液晶触摸或显示时发出蜂鸣声响,作为人机对话的辅助功能。蜂鸣器使用PNP 三极管8550(Q2)进行驱动,其放大倍数高(hFE =300),基级偏置电阻R8 为1k, 当输入低电平时,Q1 为深度饱和导通,可为蜂鸣器提供足够的电流。
  
(4) 电源电路
  
LPC2148 为单电源供电,CPU 操作电压为3.0~ 3.6V。
  
电路采用+ 3.3V 供电,外接+ 5V 直流电源经AMS1117(U4) 稳压器稳压后,输出+ 3.3V 电压,给液晶模块和ADS7843 供电。AMS1117 的特点是输出电流大( 800mA) ,输出电压精度在1%以内,具有电流限制和热保护功能,稳定性好。C4、C5、C6 均为电源滤波电容。
  
3 软件编程
  
3.1 对液晶屏的C 程序设计

液晶屏的软件设计采用C 语言编程。包括液晶屏初始化、写液晶控制字、写液晶数据子程序、读液晶液晶数据、全屏显示单色、指定位置显示汉字和字符、指定位置显示图片、清屏等子程序。
  

基于ARM微处理器的液晶触摸屏的设计

写液晶数据子程序为:
  

基于ARM微处理器的液晶触摸屏的设计

  
3.2 对触摸屏的C 程序设计
  
触摸屏的程序设计主要是确定其位置坐标与液晶屏上位置坐标的对应关系,通过一定的算法把触摸屏触摸信息转化为液晶屏上的位置坐标。液晶屏像素为240×320, 从触摸屏接收到的X 值不在0~ 320 范围变化、Y 值也不在0~ 240范围变化, 在触摸屏的边缘区域,X 、Y 方向输出数据变化较大,是非线性关系,坐标值在中间大部分范围内基本是成线性变化的。为了较准确的进行坐标转换,可采用线性求值和查表相结合的方式进行坐标转换。
  
触摸屏的C 程序设计主要包括触摸屏初始化子函数、读A/ D 转换值子函数、坐标原始值子函数和坐标转换子函数。
  
与ADS7843 相关的引脚C 程序预处理为:
  
基于ARM微处理器的液晶触摸屏的设计

  
读A/ D 转换值子函数:
  

基于ARM微处理器的液晶触摸屏的设计

  
4 结束语
  
在嵌入式智能设备中,用液晶触摸屏取代传统的按键、LED 等人机对话部件,具有操作简便、界面友好及功能较强等优点。随着LCD 液晶屏价格的进一步下降,液晶触摸屏有着更宽广的应用市场,基于ARM 微处理器与液晶触摸屏的技术开发具有现实意义和社会经济价值。

本系统以ARM7 处理器LPC2148 作为主控制器,与传统单片机相比,具有较大的数据存储容量和较快的图片处理速度;液晶屏带触摸功能,大大增强了人机对话的交互能力;基于C 语言的编程方法有较强的实时性。所设计的液晶触摸屏应用于ARM 嵌入式创新实训系统和便携式铁路平调装置故障检测仪,触摸键反应灵敏,与ARM7 处理器接口电路运行可靠,验证了系统设计的可行性,具有较高的实际应用价值。

来源: 电子产品世界

围观 372

现有的数控系统中多采用工控机加运动控制卡的计算机数控系统方案进行运动控制器的设计。随着工控机整体功能日趋复杂,对运动控制系统的体积、成本、功耗等方面的要求越来越苛刻。现有计算机数控系统在运动控制方面逐渐呈现出资源浪费严重、实时性差的劣势。此外,数控系统的开放性、模块化和可重构设计是目前数控技术领域研究的热点,目的是为了适应技术发展和便于用户开发自己的功能。

本文基于ARM和FPGA的硬件平台,采用策略和机制相分离的设计思想,设计了一种具有高开放性特征的嵌入式数控系统。该数控系统不仅具备了以往大型数控系统的主要功能,还具备了更好的操作性和切割性能,而且在开放性方面优势更为突出,使数控系统应用软件具有可移植性和互换性。

1 基于ARM和FPGA的嵌入式数控系统整体方案
  
基于ARM和FPGA的嵌入式数控系统结构如图1所示。按照模块划分的思想,本文将控制器分为人机交互、插补算法和通信三部分。系统中 ARM采用三星公司推出的16/32位RISC微处理器S3C2440A,它采用了ARM920T内核,核心频率高达400MHz。FPGA采用 Xilinx公司Spartan 3E系列的XC3S250E。
  

基于ARM和FPGA的嵌入式数控系统设计
图1 基于ARM+FPGA的嵌入式数控系统结构

  
2 S3C2440A控制系统
  
ARM作为数控系统的控制核心主要负责对从数据存储器中读取或直接从上位PC或网络获得的零件加工代码和控制信息进行译码、运算、逻辑处理,完成加工数据的粗插补以及人机界面和数据通信。ARM系统是整个数控系统的控制核心,在嵌入式操作系统的管理下,采用分时处理的方式实现整个系统的信息处理和粗插补运算,通过键盘、触摸屏等输入装置输入各种控制指令,对数控系统的实时运行状态通过LCD、指示灯等显示,实现人机友好交互。基于 S3C2440A控制器有各种通信接口,包括RS232、RS485、以太网口、USB等接口模块。通过这些接口实现文件传输和网络控制。
  
嵌入式数控的软件系统总体结构如图2所示。系统的软件结构主要分为两部分:操作系统软件和数控应用软件。由于数控系统是个实时多任务系统,实时性要求很高,为保证各个任务的协调执行,本系统采用了μC/OS-II实时操作系统作为软件平台。
  
基于ARM和FPGA的嵌入式数控系统设计
图2 嵌入式数控的软件系统总体构图

  
要实现该操作系统在S3C2440A微处理器平台上的正常运行,需要修改与处理器类型有关部分的代码,操作系统移植需要完成的工作是改写三个文件,即改写文件0S_CPU.H、0S_CPU_A.ASM和OS_CPU_C.C。其中0S_CPU.H包括了用#define语句定义的,与处理器相关的变数、宏和类型。0S_CPU_A.ASM中定义了几个汇编语言函数,包括中断服务程序的中断向量地址等。如果某些C编译器允许在C语言中直接插入汇编语言语句,就不一定需要,用户可以把所需的汇编语言代码直接放到OS_CPU_C.C文件中。
  
3 ARM和FPGA的接口设计
  
为使系统能够按照预期设计良好工作,首先要从硬件上实现ARM和FPGA之间的可靠通信。本文采用的方案是在FPGA上实现SRAM时序,将FPGA作为一块特殊的内存设备挂接到ARM的内存地址空间。这样在ARM端只需要编写SRAM的驱动程序就可以实现对FPGA端的数据写入和读取。
  
3.1 SRAM时序
  
SRAM时序分为读时序和写时序两种。当CPU对SRAM进行读操作时,首先会在地址线上写入正确的地址信号,接着是对SRAM芯片的片选信号,然后是对芯片的读信号,之后经过一定的振荡期后CPU在数据线上读到稳定的有效数据。
  
当CPU对SRAM进行写操作时,首先会在地址线上写入正确的地址线号,接着是对SRAM芯片的片选信号,然后是对芯片的写信号,在写信号上升沿之前CPU会在数据线上准备好有效数据,以供SRAM芯片在写信号上升沿将数据写入相应的地址单元。
  
3.2 FPGA端SRAM实现
  
ARM和FPGA的通信需要的接口信号有地址线A0-A15、数据线D0-D15、片选信号nCS,读信号nRD和写信号new,每次需要实现16位数据的读写。用Verilog硬件语言描述SRAM时序如下:
基于ARM和FPGA的嵌入式数控系统设计

  
可知只有在片选信号、读信号都拉低而写信号仍为高的情况下,才在data线上输出地址线上对应单元的数值,其他情况下FPGA都将data线置为高阻态,放弃对data线的控制。
  
4 基于FPGA的DDA精插补器设计
  
随着FPGA器件及其开发技术的日臻成熟,采用FPGA实现运动控制的方案显示出巨大的潜力。由于FPGA的设计是并行的、多线程,而且具有在线可编程能力,兼备了速度快和成本低的优点,同时克服了专用处理器灵活性方面的不足。基于FPGA的DDA精插补器相对传统的软件插补具有强大的优势。
  
4.1 数字积分插补算法
  
目前比较成熟的数控插补算法有逐点比较法、最小偏差法和数字积分法等,数字积分法又称数字微分分析器(Digital Differential Analyzer,DDA)。采用该方法进行插补,具有运算速度快、逻辑功能强、脉冲分配均匀等特点,可实现一次、二次甚至高次曲线插补,易于实现多轴联动。
  
数字积分插补算法是将函数的积分运算转换成变量的求和运算。如果所选择的脉冲当量足够小,则用求和运算代替积分所引起的误差可以不超过允许的数值。采用两个寄存器(函数寄存器和累加寄存器)和一个全加器构成数字积分器,将单位周期选得足够小,每单位周期都向累加器累加函数寄存器中的数值,如果累加器溢出,就向外发送脉冲,实时地改变函数寄存器的值,就可以完成步进电机的调速。DDA插补控制器设计的硬件描述语言程序的流程图如图3所示。

基于ARM和FPGA的嵌入式数控系统设计
图3 DDA插补控制器设计的硬件描述语言程序的流程图

  
4.2 数字积分插补的FPGA实现
  
采用有限状态机的设计方法,每个轴的数字积分插补均由一个三状态机的积分累加器完成。本系统的FPGA开发环境为Xilinx公司的 Xil inx ISE,并结合ModelSim仿真软件对整个系统进行了全面的功能验证。如图4所示为DDA插补模块的顶层RTL级原理图,由图5可知DDA插补模块的输入信号为各轴的起始坐标以及时钟信号和启动信号,输出信号为各轴的脉冲信号和方向信号。

基于ARM和FPGA的嵌入式数控系统设计基于ARM和FPGA的嵌入式数控系统设计
图5 DDA插补模块仿真波形

  
运用ModelSim仿真软件对DDA插补模块进行仿真验证。测试数据的起点坐标为(0,0,0)终点坐标为(8,15,11),仿真结果如图5所示,显示系统很好的完成了三轴的脉冲分配。
  
4.3 加减速控制模块
  
加减速控制是数控系统的关键技术之一,也是实现数控系统高实时性的瓶颈。数控系统中,为了保证机床在启动或停止时不产生冲击、失步、超程或振荡,必须对进给电机的脉冲频率或电压进行加减速控制。即当机床加速启动时,保证加在电机上的脉冲频率逐渐增加;而当机床减速停止时,保证加在电机上的脉冲频率逐渐减小。目前,电机加减速的常用控制方法是梯形加减速控制和S形加减速控制。本次设计采用两种控制方案以适应不同工作场合的要求。
  
4.3.1 梯形加减速
  
梯形加减速是指在加减速过程中加速度为常数,速度曲线为梯形的加减速过程。梯形加减速控制算法简单、易于实现,但在加减速过程中加速度曲线不连续会导致驱动机构的振动和冲击。正常情况下梯形加减速运动过程如图6所示分为加速段、匀速段和减速段三个阶段。
  
基于ARM和FPGA的嵌入式数控系统设计
图6 正常情况下梯形加减速运动过程

  
图7所示为ModelSim对梯形加减速模块的仿真结果,可以看到插补器输出的脉冲速度曲线呈现梯形,输出脉冲的频率的大小随速度的变化而变化,实现了电机的梯形调速。
  
基于ARM和FPGA的嵌入式数控系统设计
图7 ModelSim对梯形加减速模块的仿真结果

  
4.3.2 S形加减速
  
S形加减速是指在加减速时,加速度导数为常数,速度曲线为S形曲线的加减速过程。通过控制加速度导数来避免加速度突变,减小加工过程中由于加速度突变引起的机械系统振动。S形曲线速度控制可以得到平滑的速度曲线,但算法复杂,运算时间长。
  
基于ARM和FPGA的嵌入式数控系统设计
图8 S形加减速曲线图

  
S形加减速中加速度相对加速度导数的变化规律相当于直线加减速中速度相对加速度的变化规律。如图8所示为S形曲线加减速的曲线图,图中从上到下依次为速度曲线、加速度曲线以及减速度曲线。从图中可以看出,正常情况下S形加减速分为:加加速段、匀加速段、减加速段、匀速段、加减速段、匀减速段和减减速段七个阶段。加速度连续,调速光滑,不会导致驱动机构的振动和冲击。
  
基于ARM和FPGA的嵌入式数控系统设计
图9 ModelSim对S形加减速模块的仿真结果

  
图9所示为ModelSim对S形加减速模块的仿真结果,可以看到插补器输出的脉冲速度曲线呈现梯形,输出脉冲的频率的大小随速度的变化而变化,实现了电机的S形调速。
  
5 结束语

本文给出了一种基于ARM和FPGA的开放性的嵌入式数控系统,突破了传统的计算机数控系统架构,采用ARM处理器S3C2440A和 FPGA器件XC3S25 0E和μC/OS-II嵌入式实时操作系统组成的数控系统软硬件平台,充分利用了ARM微处理器的高速运算能力与FPGA的快速配置能力,大大减少了系统的外围接口器件,并具有良好的稳定性、模块化、可扩展性、可移植性等特点,有利于实现数控系统的开放化和网络化,有效地降低了系统成本,适合我国数控系统发展的需要,具有广阔的应用前景。

来源: 电子产品世界

围观 546

• Arm平台安全架构(PSA)采用高性价比、领先技术全面提升物联网市场的安全技术支持

• 基于STM32H7系列开发的Arm® Cortex®-M7微控制器整合PSA概念和先进的安全功能服务

意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM),今天发布了平台安全架构(PSA)。 PSA是实现同级最佳的普适网络安全的关键技术。意法半导体的STM32H7高性能微控制器采用与PSA框架相同的安全概念,并将这些概念与STM32产品家族的强化安全功能和服务完美融合。

个人用户和组织机构越来越依赖通过互联电子产品管理时间,监测健康状况,处理社交活动,享受或提供服务,提高工作效率。防止与未经授权的设备与互动,对于保护设备身份、个人信息、实体资产和知识产权极其重要。随着物联网的规模和普及率提高,公民安全和国家安全均受到威胁。设备厂商为打击黑客层出不穷的入侵手段而必须不断地创新安保系统,PSA让他们能够以适当的成本在资源有限的小设备上实现最尖端的安全机制。

意法半导体微控制器产品部总经理 Michel Buffa表示:“确保物联网成功,首要解决安全问题。从个人消费者到企业和政府机关,赢得终端所有用户的信任对物联网的广泛采用至关重要。Arm的PSA平台让设备识别和软件空中下载更新(OTA)等自主物联网设备的核心安全功能更经济,扩展性更强。我们已经将其集成到包括STM32H7高性能系列在内的STM32微控制器家族,与现有的安全功能协同工作。”

意法半导体的STM32H7 MCU集成硬件随机数生成器(TRNG)和先进密码加密处理器等硬件安全功能,可简化嵌入式应用和全球物联网系统的安全设计,防范网络监听、欺骗或中间人干预等网络攻击。此外, 安全固件装载功能有助于OEM厂商确保产品编程安全可靠,即便在代加工厂或程序开发公司等非内部生产环境中,仍能将固件安全地装入产品设备。为实现安全装载功能,已预装在微控制器内的安全密钥和软件服务准许OEM厂商将已加密的固件交给代工厂,消除了用代码拦截、复制或篡改固件的可能性,这可以实现向设备写入代码并验证设备的功能,建立设备连接终端用户网络完成远程空中更新(OTA)所需的可信根机制,以便在设备生命周期内下载安装安全补丁或升级软件。

Arm副总裁兼物联网IP业务群总经理 Paul Williamson表示:“通过推出PSA平台安全架构——保证未来数万亿物联网设备安全的通用工业框架,Arm正在与生态系统一道彻底改变安全技术的经济性。ST在STM32H7 Cortex-M 微控制器中嵌入硬件安全模块和固件装载服务,利用 Arm的 PSA概念在通信网关、物联网设备等应用领域推动安全技术创新。”

另注:

作为支持PSA的STM32H7系列中的一款产品,STM32H753 MCU基于Arm的性能最高的嵌入式处理器内核(Cortex-M7),以400MHz运行频率执行嵌入式闪存代码时,处理性能创下业内新纪录,测试成绩取得2020 CoreMark/856 DMIPS。为进一步提升微控制器的性能,意法半导体还在芯片上实现了其它创新技术功能,其中包括用于提升图形用户界面处理速度和效率的Chrom-ART Accelerator™ 、实现高速图像处理的硬件JPEG编解码器、高效的直接存储访问 (DMA)控制器、最大容量2MB的读写同步的片上双区闪存和让微控制器能够全速访问片外存储器的L1高速缓存。多电源域让开发人员能够最大限度的降低应用功耗,同时数量充足的I/O端口、通信接口、音频和模拟外设可满足娱乐、远程监视和控制等应用需求。

STM32H753即日起量产。更多STM32H753信息,请访问 http://www.st.com/STM32H753

围观 401

TrustZone是ARM对ARM6的扩展,其实只是增加了一条指令,一个配置状态位,以及一个新的有别于核心态和用户态的安全态。ARM并没有把TrustZone设计成能够解决所有的安全问题,它的目标是希望TrustZone能把一些安全性要求高的代码放在安全区域里执行,这也就是TrustZone名字的由来。

ARM把TrustZone固化在硬件里的道理是,系统的安全性不能全靠软件来保证,而且改写现有的不安全的软件,使之更安全也不大可行。较为可行的方案就是引入一块安全的硬件逻辑,并且只让一小块软>件控制此安全逻辑。这样既保护了既有投资,也把系统的安全风险降到最小。

因为操作系统和普通应用都可以运行在安全态,所以安全态不同于传统的运行态环状的特权划分,因此ARM把安全态描述成一个平行区域,称之为安全区,又称为安全监控模式。

核心态程序要进入到安全区运行,必须执行安全监控中断( secure monitor interrupt, SMI)指令,而应用程序则必须通过API 函数来调用SMI 指令,此时,操作系统要负责检查应用程序是否安全,若通过检查则执行SMI指令进入到安全区。这样,整个系统的安全性就全由操作系统负责了。换句话说,TrustZone需要软件的支持,才能达到安全目标。

执行SMI 指令的具体动作是,SMI在CP15的安全状态寄存器中设置S位.。S位扩展还体现在AMBA总线上,这样外设也可以实现对TrustZone的支持。

安全监控程序(固件)是独立于操作系统的、自足的、不可重入的一小段代码。只要CP15安全状态寄存的S位处于置1状态,安全监控程序就要起作用(监测所有处理器操作)。首先监控程序要负责保存>上下文状态,即寄存器内容(一般保存到紧致内存TCM中),并且把当前处理器配置信息保存到CP15的单独一组分编(banked)寄存器中。TrustZone的开销是增加了大约350位状态信息,完成上下文切换需要200时钟周期。

由于TrustZone为安全区配备了单独的缓存、TLB和紧致内存TCM,上下文切换并不会导致这些性能构件内容的倒换,也即不会导致系统性能的降低。

ARM建议把安全监控程序及其运行时需要的内存置于一个TCM块中,以使延迟更低且更可预测。

安全扩展对于中断处理也有影响。因为中断既可以来自外设,也可来自软件,那就必须假定中断有可能造成安全漏洞,这样,在安全代码执行时,就不能简单地让任何中断切入进来。ARM建议的方案是,把中断也分为安全的和非安全的,安全代码只能被安全中断打断。当然,也可以把所有中断都提升为安全的,但那样会引入不必要的延迟。

TrustZone是体系结构的扩展,系统软件可以利用这一扩展提供安全支持,TrustZone本身并不能实现安全保障功能,但这一解决方案硬件实现不复杂,也不增加许多功耗,仍是具有很好性价比的安全嵌入式解决方案。

转自: http://blog.csdn.net/fanguannan0706/article/details/46720713

围观 365

针对ARM-Linux程序的开发,主要分为三类:应用程序开发、驱动程序开发、系统内核开发,针对不同种类的软件开发,有其不同的特点。今天我们来看看ARM-Linux开发和MCU开发的不同点,以及ARM-Linux的基本开发环境。

1、ARM-Linux应用开发和单片机开发的不同

这里先要做一个说明,对于ARM的应用开发主要有两种方式:一种是直接在ARM芯片上进行应用开发,不采用操作系统,也称为裸机编程,这种开发方式主要应用于一些低端的ARM芯片上,其开发过程非常类似单片机,这里不多叙述。还有一种是在ARM芯片上运行操作系统,对于硬件的操作需要编写相应的驱动程序,应用开发则是基于操作系统的,这种方式的嵌入式应用开发与单片机开发差异较大。ARM-Linux应用开发和单片机的开发主要有以下几点不同:

• 应用开发环境的硬件设备不同
单片机:开发板、仿真器(调试器)、USB线;

ARM-Linux:开发板、网线、串口线、SD卡;

对于ARM-Linux开发,通常是没有硬件的调试器的,尤其是在应用开发的过程中,很少使用硬件的调试器,程序的调试主要是通过串口进行调试的;但是需要说明的是,对于ARM芯片也是有硬件仿真器的,但通常用于裸机开发。

• 程序下载方式不同
单片机:仿真器(调试器)下载,或者是串口下载;

ARM-Linux:串口下载、tftp网络下载、或者直接读写SD、MMC卡等存储设备,实现程序下载;

这个与开发环境的硬件设备是有直接关系的,由于没有硬件仿真器,故ARM-Linux开发时通常不采用仿真器下载;这样看似不方便,其实给ARM-Linux的应用开发提供了更多的下载方式。

• 芯片的硬件资源不同
单片机:通常是一个完整的计算机系统,包含片内RAM,片内FLASH,以及UART、I2C、AD、DA等各种外设;

ARM:通常只有CPU,需要外部电路提供RAM以供ARM正常运行,外部电路提供FLASH、SD卡等存储系统映像,并通过外部电路实现各种外设功能。由于ARM芯片的处理能力很强,通过外部电路可以实现各种复杂的功能,其功能远远强于单片机。

• 固件的存储位置不同
单片机:通常具备片内flash存储器,固件程序通常存储在该区域,若固件较大则需要通过外部电路设计外部flash用于存储固件。

ARM-Linux: 由于其没有片内的flash, 并且需要运行操作系统,整个系统映像通常较大,故ARM-Linux开发的操作系统映像和应用通常存储在外部的MMC、SD卡上,或者采用SATA设备等。

• 启动方式不同
单片机:其结构简单,内部集成flash, 通常是芯片厂商在程序上电时加入固定的跳转指令,直接跳转到程序入口(通常在flash上);开发的应用程序通过编译器编译,采用专用下载工具直接下载到相应的地址空间;所以系统上电后直接运行到相应的程序入口,实现系统的启动。

ARM-Linux:由于采用ARM芯片,执行效率高,功能强大,外设相对丰富,是功能强大的计算机系统,并且需要运行操作系统,所以其启动方式和单片机有较大的差别,但是和家用计算机的启动方式基本相同。其启动一般包括BIOS,bootloader,内核启动,应用启动等阶段。

(a)启动BIOS
BIOS是设备厂家(芯片或者是电路板厂家)设置的相应启动信息,在设备上电后,其将读取相应硬件设备信息,进行硬件设备的初始化工作,然后跳转到bootloader所在位置(该位置是一个固定的位置,由BIOS设置)。(根据个人理解,BIOS的启动和单片机启动类似,需要采用相应的硬件调试器进行固件的写入,存储在一定的flash 空间,设备上电启动后读取flash空间的指令,从而启动BIOS程序。)

(b)启动bootloader
该部分已经属于嵌入式Linux软件开发的部分,可以通过代码修改定制相应的bootloader程序,bootloader的下载通常是采用直接读写SD卡等方式。即编写定制相应的bootloader,编译生成bootloader映象文件后,利用工具(专用或通用)下载到SD卡的MBR区域(通常是存储区的第一个扇区)。此时需要在BIOS中设置,或者通过电路板的硬件电路设置,选择bootloader的加载位置;若BIOS中设置从SD卡启动,则BIOS初始化结束后,将跳转到SD卡的位置去执行bootloader,从而实现bootloader的启动。

Bootloader主要作用是初始化必要的硬件设备,创建内核需要的一些信息并将这些信息通过相关机制传递给内核,从而将系统的软硬件环境带到一个合适的状态,最终调用操作系统内核,真正起到引导和加载内核的作用。

(c)启动内核
bootloader启动完成初始化等相关工作之后,将调用内核启动程序。这就进入了实际的操作系统相关内容的启动了,包括相应的硬件配置,任务管理,资源管理等内核程序的启动。

(d)启动应用
在操作系统内核启动之后,就可以开始启动需要的应用,去完成真正的业务操作了。

2、ARM-Linux 基本开发环境

前面介绍了ARM-Linux应用开发和单片机开发的不同之处,相信你已经对ARM-Linux应用开发有了一个基本的认识了,下面将介绍一下ARM-Linux的基本开发环境。其主要包括硬件环境和软件环境两个部分,这里以iMX53和Ubuntu为例进行说明。

• 硬件环境

开发板:ARM运行的硬件环境,或者是相应项目的ARM电路板。

计算机:作为开发主机使用,安装Linux(如Ubuntu)),或者采用虚拟机安装Ubuntu。

串口线:用于开发过程中采用终端进行串口调试或下载程序。

网线:用于连接arm-board和开发主机,实现tftp下载内核(程序等),通过网络nfs运行程序等。

SD卡(及读卡器)或者其他存储设备:用于存储bootloader、内核映像等,以及最终的软件系统的存储;开发过程中,通常用于保存bootloader,引导系统启动。

• 软件环境

Ubuntu: 作为操作系统,是整个软件开发环境的载体,相应的开发工具都布置在此系统中。

LTIB: 这是freescale的提供的一个编译工具链,能够很方便的将源代码文件编译为适合的程序代码,并对程序进行调试;用户也可以通过下载源码构建自己的编译工具链。

tftp: 用于从开发主机Ubuntu上向arm-board 下载内核文件、应用文件等。

nfs网络文件系统:用于在开发主机上建立网络nfs文件根系统,arm-board通过nfs网络文件系统读取开发主机上的虚拟根文件系统,完成系统的启动;方便系统的开发与调试。

minicom:串口调试工具,用于在开发主机上与arm-board通信,实现对arm-board上应用程序的操作与调试。

Eclipse:集成开发环境,主要方便代码的编辑、编译等,也可采用DS5,RealView等;或者采用gedit进行编辑,通过LTIB进行编译和管理。

转自: 嵌入式资讯精选

围观 672

1.引言

通常微波所指的是分米波、厘米波和毫米波。关于其频率范围,一种说法是:

300MHz ~ 300GHz(1MHz =106Hz,1GHz =109 )相应的自由空间中的波长约为1m~1mm.

微波技术的兴起和蓬勃发展,使得国内大多数高校都开设微波技术课程。但还存在以下问题:测量时,由手工逐点移动探头并记录各点读数,然后手工计算实验结果并绘图。测量项目单一、精度低、测量周期长,操作也较为繁琐。本文主要研究一种实用的基于Labview的速调管微波频率自动测量系统。

2.系统整体结构

系统的整体结构如图2-1所示。由下位机跟上位机构成。微处理器通过驱动电路来控制步进电机,带动谐振式频率计的套筒转动,处理器采样检波电流,传送到上位机LabVIEW界面显示,并利用PC机强大的数据处理功能,分析出电流最小值,计算出所测频率。

基于ARM的微波频率自动测量系统设计

3.系统硬件设计

3.1 微处理器系统电路的设计

本系统选用的微处理器是S3C44B0.2.5VARM7TDMI内核,3.0~3.6V的I/O操作电压范围。可通过PLL锁相环倍频高至66MHz;71个通用I/O口;内嵌有8通道10位ADC,本系统选取了通道1作为晶体检波器电流输入通道。

3.2 复位电路

系统没有采用RC电路作为复位电路,而使用了电压监控芯片SP708SE,提高了系统的可靠性。复位电路的RST 端连接到S3C44B0的复位引脚nRESET,因为S3C44B0的复位信号是低电平有效,所以当系统掉电或复位按键SW_RST被按下时,电源监控芯片RST 引脚立即输出复位信号,使S3C44B0芯片复位。

基于ARM的微波频率自动测量系统设计

3.3 谐振式频率计自动测量电路的设计

3.3.1 定标法测频率原理

为了实现频率的自动化测量,本系统采用步进电机带动频率计的转动,当腔体转到了谐振位置时候,到达检波器的微波功率明显下降,检波电流出现明显的下降,而这个位置对应的频率就是所测频率。步进电机带动下的是非只读式频率计,所以先要用定标的方法,拟合出频率与刻度的对应关系式。定标法:同时配合两种频率计,一种是只读式的,可直接读出频率;另一种是非只读式的,只有刻度,不能直接读出频率。首先手动转动非只读式频率计到一个谐振的位置,记录这时的刻度,然后再转动只读式频率计,到另外一个谐振位置,记录对应的频率。重复这种操作,测出尽量多的频率和刻度对应点,根据测得数据再用最小二乘法拟合出两者的对应关系式。最后改换用步进电机带动非只读式频率计转动,当转动到检波电流出现明显的“吸收谷”时,读得这时的刻度,根据拟合出来的刻度与频率关系式,就可得所测频率。

3.3.2 步进电机及自动控制电路

步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可通过控制脉冲频率来控制电机转动的速度,达到调速的目的。

本系统采用二相步进电机,具有如下一些特点:只需将电机与驱动器接线的A+和A-(或者B+和B-)对调即可实现电机的转动方向;步进角为1.8°的两相四线混合式步进电机,并把细分驱动器的细分数设置为8,电机的运转分辨率为每个脉冲0.225°。为了有效驱动电机,本文采用了基于TA8435H芯片的驱动电路。实际应用电路如下图3-2所示,芯片的输入信号有使能控制、正反转控制和时钟输入。

通过光耦器件TLP521可将驱动芯片跟输入级进行电隔离,起到逻辑电平隔离和保护作用。

M1,M2分别接高电平,所以为1/8细分方式。

由于REF IN引脚接高电平,因此VNF为0.8V.

输出级斩波电流为VNF/RNF=0.8/0.8=1A,因此R212、R213要选用功率大一些的电阻。选用不同的二相步进电机时,应根据其电流大小选择合适的R212和R213.R21和C5组成复位电路,D1~D4快恢复二极管可用来泄放绕组电流。

基于ARM的微波频率自动测量系统设计

电路中用到微处理器S3C44B0引脚PC0,PC1,PC2给驱动电路分别输出使能,正反转,时钟信号,通过控制输出脉冲的间隔可以控制电机转动的速率,而输出脉冲个数可控制步进电机走动的步数,达到控制频率计腔体位置目的。电路输出端口A, A, B, B接二相步进电机对应输入端子。

3.3.3 检波电流I/V转换及放大电路

检波晶体的作用是将微波微弱信号转换成直流信号。故可观察检波电流是否出现“吸收波谷”来判断腔体是否到达谐振位置。本系统将检波电流经过处理之后传送到上位机的LabVIEW界面显示,观察是否到谐振位置。

基于ARM的微波频率自动测量系统设计

由于微波信号在传输过程中受到外部干扰的噪声,线路的噪声,元器件的噪声等等,因此需要滤波电路来滤除这些干扰信号。由于处理器对信号的采集速率比较低,所以本系统采用了时间常数比较大的由R418和C409构成的低通滤波器。其截止频率为f p =30Hz有利于滤除电路中的尖峰噪声。电路采用两级运放,第一级为I/V转换,第二级为电压反相放大。调节可变衰减器,电机走完全程,观察到检波电流最大值为50.9μ A,因此电路中RF4=1K,R416=1K,RF5=45K,由Vout1=-RF4*I知,经过第一级I/V转换之后最大电压为50.9mV,再经过放大,最终输出电压最大为2.291V,满足S3C44B0的A/D转换输入要求。

4.软件设计

4.1 下位机软件

系统开机复位后,进入while(1)死循环,时刻检测上位机是否发来测量频率的命令,当接受到测量频率命令后,调用测频率模块子程序。频率测量子程序中,电机走完全程需要1854步,每一步带动谐振腔走0.005mm,每一步耗时44.44ms,电机每走动一步,把100次检波电流的A/D转换数据求平均值后再通过串口发送到上位机显示。

4.2 上位机软件设计

在虚拟仪器开发平台LabVIEW中,可以利用基于VISA的仪器驱动模板中的I/O接口函数来方便快速地开发驱动程序。本系统中通过PC机和主控芯片S3C44BO的RS232串行通信实现数据采集的驱动程序正是使用这种方法。

如图3-5频率测量的labview程序图。首先用最大值与最小值函数求出采集到的电流数据的最小值,并求出其对应的索引值,即步进电机在哪一步采集到的电流值,从而把这个索引值反馈回频率数组,求出其对应的元素,则为所测频率。

基于ARM的微波频率自动测量系统设计

5.信号源输出频率测量实验结果及分析

为了在上位机的LabVIEW界面得到所测量的微波信号频率,需在界面中显示出检波电流–频率曲线,从而可明显读出检波电流的“吸收波谷点”.需通过定标法先手工测量频率–距离(当前测量点与起始点的距离,可由套筒刻度算出)的一组尽可能多的数据点,然后利用步进电机每走一步的距离,就可以把距离转化为步数,再用matlab拟合出频率–步数的关系函数。从而可知道步进电机走到哪一步对应哪一个频率。电机走完全程需要1854步,那么把步数对应的1854个频率值组成一个数组作为曲线的横坐标,并把采集到的1854个电流值作为纵坐标。

限于本信号源频率及谐振式频率计测量范围的影响,本系统只能在8.48GHz和9.9GHz范围内测量。因此从套筒的起始位置9.9mm(对应于频率8 . 4 8 G H z ),截止位置0 . 6 3 m m (对应于频率9.9GHz),其全长为9.9mm-0.63mm=9.27mm.由于电机带动套筒每步的距离非常小,因此不能直接测量步进电机一步的距离,利用步进电机没有累计误差的特点,采用步进电机走动180步,测出套筒刻度前后位置差,得出步进电机带动套筒每一步移动平均距离为0.005mm.手工测出频率与刻度的42组数据点,利用MATLAB拟合出图5-1所示曲线。用MATLAB拟合出频率f 与刻度L 线性关系函数为f = ?0.1456* L + 9.9917(0.63mm ≤ L ≤ 9.9mm)。由于电机每步带动套筒移动0.005mm,起始位置在0.63mm,即步进电机走一步后,套筒的位置在0.63mm+0.005mm=0.635mm,而步进电机走完全程需要1854步,套筒的截止位置在0.63+0.005*1854=9.9mm.则刻度L 与步数n 的关系函数为L = 0.005n + 0.63(0 ≤ n ≤1854)。

可推导出频率f 与步数n的函数关系式为f = ?0.000728n + 9.9(0 ≤ n ≤1854)。把步数对应的1854个频率值组成一个数组作为曲线的横坐标,并把采集到的1854个电流值作为纵坐标,利用PC机在LabVIEW描绘的波形图如图5-2所示。

基于ARM的微波频率自动测量系统设计

再由LabVIEW自动计算检波电流最小值对应的频率值,如图5-4所示。可知这时信号源输出频率为9.337GHz.

基于ARM的微波频率自动测量系统设计

与手工测量做对比。换上可直接测出频率的谐振式频率计,测得这时的频率为9.357GHz,所以自动测量与手动测量的相对误差为:

基于ARM的微波频率自动测量系统设计

本系统设定步进电机走完全程需要82.4秒,不能设得走太快的原因是防止步进电机“丢步”(漏掉了脉冲没有运动到指定的位置)。另外太快很可能检测不到检波电流的“波谷点”.而手工测量一次信号源的输出频率,通常要两分多钟,可见本系统自动测量的实用性。

转自: news.qegoo.cn

围观 554

页面

订阅 RSS - ARM