ARM平台

2024-08-02

ARM平台(精选9篇)

ARM平台 篇1

统一可扩展固件接口UEFI(Unified Extensible Firmware Interface ) 在设计之初被定义为一种与处理器架构无关的接口标准。 UEFI接口可以采用多种不同的架构实现,对外则都表现为相同的接口。 这样,UEFI就可以最大限度地保证不同设计间的代码重用,其中也包括不同处理器架构的平台[1]。 2009 年发布的UEFI 2.3 规范与传统的BIOS和UEFI早期版本只支持X86 架构的处理器相比,最大的改进在于支持不同架构的处理器平台,ARM -UEFI成为了规范的一部分。 2013 年发布的UEFI2 . 4 规范中包含了对ARM 64 位架构处理器的支持。 这些都表明UEFI对ARM系统预引导固件的支持是一个新的机遇。 使用基于UEFI标准的ARM预引导固件具有很多优越性,UEFI不仅可以实现不同架构平台之间的代码共享, 还可以共享标准外设( UART 、 Ethernet 、 USB控制器等) 的驱动代码以及丰富的标准函数库接口。 同时,ARM - UEFI的实现为ARM系统提供了真正独立于操作系统的启动解决方案, 而其他大多数现有的ARM启动解决方案( UBoot 、 Redboot等) 都是与其所支持的操作系统相耦合[2]。 本文详述了基于OMAP4460 嵌入式平台的ARM -UEFI的移植过程及其外设的UEFI驱动程序的开发方法。

1 OMAP4460 处理器及平台硬件结构

OMAP4460 是TI公司专为智能手机、 平板计算机以及具有丰富多媒体功能的移动终端设计的一款高性能、高集成度的嵌入式异构多核处理器[3]。 该处理器包括2个Cortex A9 内核、1 个DSP内核、2 个Cortex-M3 内核、1 个GPU以及丰富的I / O接口资源。 在OMAP4460 中,嵌入式操作系统运行在ARM内核上, 算法的运算工作由DSP内核完成, 二者通过TI提供的Codec Engine机制进行数据交互, 实现了OMAP4460 处理器内部多核的协同工作。

OMAP4460 开发平台的硬件结构框图如图1 所示。硬件平台由核心模块和扩展板两部分组成,核心模块包括OMAP4460 处理器、TWL6032 电源管理芯片和1 GB的DRAM; 扩展板主要实现外设接口电路, 包括SD/TF卡接口、UART接口、USB接口、以太网接口和DVI/HDMI接口等。

2 ARM - UEFI引导流程

通用UEFI根据不同时间段内平台初始化所要完成的任务将操作系统启动过程按顺序分为SEC、PEI、DXE和BDS[4]4 个阶段。 其中SEC(安全)阶段检测并验证固件镜像的完整性,同时建立C语言执行环境的堆栈;PEI( 预EFI初始化) 阶段主要完成内存初始化, 将固件镜像加载至内存中执行;DXE(驱动执行环境)阶段完成平台初始化, 并为操作系统引导提供软件抽象的服务;BDS( 引导设备选择) 阶段从引导设备中启动操作系统, 将控制权交给操作系统,完成引导过程。 UEFI上电执行顺序如图2 所示。

目前ARM平台的启动方式多种多样,Bootloader通常采用多阶段的启动过程[5]。 首阶段确定启动方式, 执行必要的初始化操作, 加载后续阶段镜像, 后续阶段提供复杂的功能用于引导操作系统。 这种方式既能够保证Bootloader的功能性, 又具有很好的可移植性。 因此对于OMAP4460 平台的启动方案, 采用x - loader + UEFI两个启动阶段的方式引导操作系统。 x-loader作为第一阶段的固件,要执行时钟、内存控制器等部分硬件的初始化,并确定OMAP4460 平台的启动方式, 最终将UEFI加载到内存中并跳转到指定地址执行。 内存初始化已在xloader中完成, 故UEFI不再实现SEC以及PEI阶段的大部分功能,OMAP4460 平台ARM-UEFI的PEI阶段只需要完成系统内存映射和UEFI执行环境堆栈的建立, 并执行硬件平台相关模块的初始化配置, 之后UEFI跳转进入DXE和BDS阶段。 本方案DXE以及BDS阶段的执行策略和实现功能与通用UEFI固件基本相同: 在DXE阶段加载所有的驱动程序, 完成平台初始化工作; 在BDS阶段创建控制台, 设置内核的启动参数, 加载引导设备的内核镜像到内存中执行。 OMAP4460 平台ARMUEFI引导流程图如图3 所示。

3 ARM - UEFI开发与移植

3 . 1 移植x - loader

OMAP4460 处理器内部的SRAM只有64 KB , 相对于第二阶段UEFI固件镜像的数百k B而言过小,OMAP4460处理器无法加载UEFI固件镜像到SRAM运行, 而需要使用外部DRAM加载。 因此, 本方案采用基于精简UBoot基本代码的x-loader作为第一阶段的引导固件。 由于SRAM容量的限制, x - loader的初始化操作只针对必要的硬件模块,如引脚复用和功能设置、时钟、内存控制器等。 初始化操作的目的是将UEFI固件镜像从OMAP446平台的SD卡中加载到DRAM中, 然后跳转到入口地址执行。

x - loader的入口位于Start . s文件, Start . s首先执行CPU的基本初始化, 包括禁止Cache和TLB 、 关闭中断等。 其次执行两个跳转模块cpu_init_crit和start_armboot,cpu_init_crit模块跳转到s_init ( ) 函数执行, s_init ( ) 中调用了3 个函数实现平台基本初始化:set_muxconf_regs() 实现处理器芯片引脚复用和功能设置;ddr_init() 实现内存初始化;prcm_init() 则实现平台各个模块时钟的初始化配置。 这3 个函数的修改要针对OMAP4460 平台的具体硬件结构以及引导过程中所使用到的模块进行。start_armboot则是在内存初始化完成且堆栈建立以后执行,程序跳转至libboard.c文件的start_armboot() 函数, 实现加载UEFI固件镜像到指定内存位置的过程。 第二阶段UEFI固件镜像的入口地址定义为CFG_LOADADDR ,它必须与OAMP4460 平台UEFI固件镜像的起始地址相同, 后者由固件的fdf (Flash描述文件) 指定。 最终x -loader使用函数指针的方式实现x - loader到UEFI的跳转,代码如下:

( ( init_fnc_t * ) CFG_LOADADDR ) ( ) ;

3 . 2 移植PEI阶段代码

如上所述,OMAP4460 平台的ARM -UEFI没有SEC阶段, 且PEI阶段实现功能与通用UEFI的PEI阶段也有所不同,PEI阶段不再需要完成内存初始化任务, 而是侧重于系统平台信息、 内存资源的收集过程, 并通过信息描述块HOB传递给DXE阶段。 OMAP4460 平台的PEI阶段的主体实现代码位于Arm Platform PkgPre Pi . c的Pre Pi Main ( ) 函数中, 该函数主要实现了3 个功能: PEI阶段的串口调试信息输出;调用PEI模块Memory Peim实现MMU的初始化, 建立UEFI系统堆栈, 并将这些系统资源建立成HOB传递给后续阶段; 调用Platform Peim实现一些硬件模块的初始化和配置。

PEI阶段的串口输出是通过调用Serial Port Lib中的库函数实现的。 Serial Port Lib主要包含两部分:串口初始化函数和串口读写函数。 初始化函数Serial Port Initialize()首先配置平台UART接口的引脚复用, 使能时钟; 然后再设置串口通信模式, 配置串口通信的波特率等参数;最后使能FIFO,完成UART接口的初始化。 而读写函数则是通过轮询标志位的方式判断FIFO是否为空, 再按字节读写FIFO。 PEI阶段调试信息输出样例代码如下:

Platform Peim中再次实现了平台模块的初始化,目的是向后兼容未来采用通用UEFI引导方式的ARM平台的PEI阶段所要实现的完整功能。Platform Peim中包括了3个函数:Pad Configuration()、Clock Init()和Gpmc Init()。Pad Configuration()函数和Clock Init()函数都通过操作宏定义的方式实现平台功能。Pad Configuration()完成平台所有引脚复用功能的设置。Clock Init()完成平台所有模块时钟的配置,并使能部分模块时钟。这种实现方式的好处是有统一的启动代码,开发DXE阶段的外设驱动程序时不需要再配置外设接口的引脚和时钟。引脚复用配置代码如下:

数据结构PAD_CONFIGURATION类型的数组PadConfiguration Table Shared中存放的是OMAP4460 处理器芯片所有引脚的寄存器地址宏定义和引脚属性宏定义。Mmio Write16 ( ) 函数实现16 位寄存器的写功能, 通过获取指定引脚寄存器的地址, 写入指定的配置属性, 完成引脚复用功能的配置。

Gpmc Init ( ) 则用于配置通用存储控制器GPMC的片选信号,样例代码如下:

PEI的工作完成之后, 解压固件镜像的压缩部分到内存,并直接跳转至DXE阶段执行,代码如下:

3 . 3 开发设备驱动程序

EDK II开发工具是基于X86 平台的PCI总线结构实现的。 当用其开发OMAP4460 平台ARM-UEFI时, 需要重构平台的接口控制器驱动程序,为上层提供标准的UEFI服务。 同时, 完整移植处于上层并满足工业标准的接口驱动程序, 从而实现对原有代码的重用, 加快ARM - UEFI的开发。

以显示驱动程序的开发为例, 在OMAP4460 平台上使用HDMI作为ARM-UEFI引导时的显示接口。 ARMUEFI系统中只需实现HDMI显示驱动程序即可实现显示控制台的输出。 HDMI显示驱动程序实现图像输出协议EFI_GRAPHICS_OUTPUT_PROTOCOL ,该协议提供服务接口给图像控制台驱动程序Graphics Consoledxe, 再由该驱动程序实现简单文本输出协议EFI_SIMPLE_TEXTOUT_PROTOCOL , 最后由虚拟控制台驱动程序Consoleplitterdxe将所有挂载简单文本输出协议的设备句柄统一挂载到虚拟控制台输出句柄Con Out上, 由Con Out实现控制台的输出,OMAP4460 平台UEFI图形控制台结构图如图4所示。

HDMI显示驱动程序包括三部分: 显示模块硬件初始化、显示模式的配置以及图像的显示。 其中GOP协议的函数接口实现显示模式配置与图像的显示,Query Mode 、Set Mode两个接口实现分辨率、 颜色及频率的配置,Blt接口实现图像显示。 GOP协议数据结构定义如下:

显示模块初始化函数Initialize Display()在驱动程序的入口函数中执行,具体初始化过程分为3 步:

( 1 ) 使能ESD保护芯片TPD12S016 的供电及热插拔引脚功能, 检测HDMI接口的HDMI_HPD引脚状态, 检测是否接入显示器。

( 2 ) 使能显示子系统的功能时钟和接口时钟, 同时使能HDMI物理层的时钟。

( 3 ) 申请图像管道内存, 并记录基地址。

HDMI接口显示模式的配置分为显示子系统和HDMI物理层两部分的显示模式配置,由Query Mode和Set Mode接口函数实现。 Query Mode通过HDMI的I2C接口读取显示器的扩展显示标识数据EDID (Extended Display Identification Data ) , EDID中包含了监视器时序、 定时和分辨率等性能参数, 使用这些参数填充Mode结构体, 再将Mode作为改变值参数传递给Set Mode接口, 由Set Mode完成显示子系统和HDMI物理层中显示输出时钟频率、图像分辨率、 位宽等寄存器变化值的写入和重新使能,从而更新显示分辨率、 图像格式以及颜色模式等参数。写寄存器样例代码如下:

其中宏定义HDMI_WP_VIDEO_SIZE是HDMI模块定义显示器分辨率的32 位寄存器地址,该寄存器低16 位为水平像素, 高16 位为垂直像素。 结构体Lcd Modes的Horizontal Resolution和Vertical Resolution参数代表显示模式需要配置的分辨率参数,通过Mmio Write32() 函数将值写入寄存器,完成配置。

图像的显示由GOP协议的Blt接口函数实现,Blt函数首先调用Lcd Platform Get Bpp() 函数获取平台设置的图像格式以及位宽,再计算原图像像素和目标管道内存的地址,然后将EFI图像像素转换成显示器设置的像素格式, 宏定义LCD_BITS_PER_PIXEL_24 表示图像格式为x RGB24 , 即每个像素占用32 位, 低24 位按照蓝绿红各8位排列,最高8 位为空。 最后将转换完成的像素数据存放在计算好的目标管道内存中,使用图像管道将图像数据输出。 具体代码如下:

3 . 4 优化BDS阶段

UEFI在BDS阶段会连接设备驱动程序、 创建控制台并轮询引导设备,操作过程非常耗时。 而对于嵌入式系统平台, 系统引导时间有严格要求, 需要优化ARMUEFI的BDS阶段, 以缩短引导时间。 方案采用的策略是使用平台配置数据库PCD (Platform Configuration Database)在平台包的dsc文件( 平台描述文件) 中定义控制台和引导设备的路径, 并在BDS阶段中分两阶段执行: 首先读取控制台设备路径, 连接控制台设备驱动程序; 然后读取引导设备路径, 连接指定引导设备的驱动程序,再从引导设备中加载内核, 并将控制权移交给操作系统。至此,ARM-UEFI开发流程基本完成。

ARM-UEFI在系统耦合、 代码重用方面具有明显的优势,加速系统开发的同时,还能减少开发成本。 随着越来越多的厂商参与到ARM-UEFI标准的制定和实现中来,ARM-UEFI将会成为ARM系统标准的启动解决方案。

摘要:介绍了ARM平台下UEFI的相关概念和引导流程,基于TI公司的OMAP4460 Cortex A9处理器开发平台分析了ARM-UEFI各个执行阶段的移植过程。通过具体实例说明了ARM平台中UEFI设备驱动程序的移植及开发方法。

关键词:ARM-UEFI,OMAP4460,设备驱动程序

ARM平台 篇2

Research and Development of the Remote I/O Data Acquisition System Based on Embedded ARM Platform

INTRODUCTION

With the wide use of the networked, intelligent and digital distributed control system, the data acquisition system based on the single-chip is not only limited in processing capacity, but also the problem of poor real-time and reliability.In recent years, with the rapid development of the field of industrial process control and the fast popularization of embedded ARM processor, it has been a trend that ARM processor can substitute the single-chip to realize data acquisition and control.Embedded ARM system can adapt to the strict requirements of the data acquisition system, such as the function, reliability, cost, size, power consumption, and so on.In this paper, a new kind of remote I/O data acquisition system based on ARM embedded platform has been researched and developed, which can measure all kinds of electrical and thermal parameters such as voltage, current, thermocouple, RTD, and so on.The measured data can be displayed on LCD of the system, and at the same time can be transmitted through RS485 or Ethernet network to remote DAS or DCS monitoring system by using Modbus/RTU or Modbus/TCP protocol.The system has the dual redundant network and long-distance communication function, which can ensure the disturb rejection capability and reliability of the communication network.The new generation remote data acquisition and moni-toring system based on the high-performance embedded ARM microprocessor has important application significance.STRUCTRUE DESIGN OF THE WHOLE SYSTEM

The whole structure chart of the remote data acquisition and monitoring system based on embedded ARM platform is shown in Figure 1.In the scheme of the system, the remote I/O data acquisition modules are developed by embedded ARM processor, which can be widely used to diversified industries such as electric power, petroleum, chemical, metallurgy, steel, transportation and so on.This system is mainly used for the concentrative acquisition and digital conversion of a variety of

苏州大学本科生毕业设计(论文)

electrical and thermal signals such as voltage, current, thermal resistance, thermo-couple in the production process.Then the converted data can be displayed on the LCD directly, and also can be sent to the embedded controller through RS485 or Ethernet network communication interface by using Modbus/RTU or Modbus/TCP protocol.The data in the embedded controller platform is transmitted to the work-stations of remote monitoring center by Ethernet after further analyzed and pro-cessed.At the same time, these data can be stored in the real time database of the database server in remote monitoring center.The system has the dual redun-dant network and long-distance communication function, which can ensure the disturb rejection capability and reliability of the communication network.The hardware platform of the Remote I/O data acquisition system based on emb-edded ARM uses 32-bit ARM embedded microprocessor, and the software plat-form uses the real-time multi-task operating system uC/OS-II, which is open-source and can be grafted, cut out and solidified.The real time operating system(RTOS)makes the design and expansion of the application becomes very easy, and without more changes when add new functions.Through the division of the appli-cation into several independent tasks, RTOS makes the design process of the application greatly simple.Figure 1 Structure of the whole system

苏州大学本科生毕业设计(论文)

THE HARDWARE DESIGN OF THE SYSTEM

The remote I/O data acquisition system based on embedded ARM platform has high universality, each acquisition device equipped with 24-way acquisition I/O channels and isolated from each other.Each I/O channel can select a variety of voltage and current signals, as well as temperature signals such as thermal resis-tance, thermocouple and so on.The voltage signals in the range of 0-75 mV ,1-5V ,0-5V, and so on, the current signals in the range of 0-10mA and 4-20 mA, the thermal resistance measurement components including Cu50, Cu100, Pt50, Pt100, and the thermocouple measurement components including K, E, S, T, and so on.Figure2.Structure of the remote I/O data acquisition system based on ARM processor

The structural design of the embedded remote I/O data acquisition system is shown in Figure 2.The system equipped with some peripherals such as power, keyboard, reset, LCD display, ADC, RS485, Ethernet, JTAG, I2C, E2PROM, and so on.The A/D interface circuit is independent with the embedded system, which is independent with the embedded system, which is system has setting buttons and 128*64 LCD, which makes the debugging and modification of the parameters easy.The collected data can be sent to the remote embedded controller or DAS, DCS system by using Modbus/RTU or Modbus/TCP protocol through RS485 or Eth-ernet communication interface also, and then be used for monitoring and control

苏州大学本科生毕业设计(论文)

after farther disposal.The system of RS485 has a dual redundant network and long-distance communication function.As the embedded Ethernet interface makes the remote data exchange of the applications become very easy, the system can choose RS485 or Ethernet interface through jumper to communicate with host computer.Ethernet interface use independent ZNE-100TL intelligent embedded Ethernet to serial port

conversion module in order to facilitate the system maintenance and upgrade.The ZNE-100TL module has an adaptive 10/100M Ethernet interface, which has a lot of working modes such as TCP Server, TCP Client, UDP, Real COM, and so on, and it can support four connections at most.Figure3.Diagram of the signal pretreatment circuit

Figure 3 shows the signal pretreatment circuit diagram.The signals of thermo-couple such as K,E,S,T etc and 0-500mV voltage signal can connect to the positive end INPx and the negative end INNx of the simulate multiplexers(MUX)directly.The 4-20mA current signal and 1-5V voltage signal must be transformed by resis-tance before connecting to the positive end INPx and the negative end INNx of the MUX of certain channel.The RTD thermal resistance signals such as Cu50, Cu100, Pt50 and Pt100 should connect one 1mA constant current before connecting to the positive end INPx and the negative end INNx of the MUX of certain channel.苏州大学本科生毕业设计(论文)

Figure4.Diagram of ADC signal circuit

Figure 4 shows the ADC signal circuit, which using the 16-bit ADC chip AD7715.The connection of the chip and the system is simple and only need five lines which are CS(chip select), SCLK(system clock), DIN(data input), DOUT(data output)and DRDY(data ready).As the ARM microprocessor has the characteristics of high speed, low power, low voltage and so on, which make its capacity of low-noise, the ripple of power, the transient response performance, the stability of clock source, the reliability of power control and many other aspects should be have higher request.The system reset circuit use special microprocessor power monitoring chip of MAX708S, in order to improve the reliability of the system.The system reset circuit is shown in Figure 5.苏州大学本科生毕业设计(论文)

Figure5.Diagram of system reset circuit

SOFTWARE DESIGN AND REALIZATION OF THE SYSTEM The system software of the remote I/O data acquisition system based on embedded ARM platform use the real-time operating system(RTOS)uC/OS-II, which is open-source and can be grafted, cut out and solidified.The key part of RTOS is the real-time multi-task core, whose basic functions including task management, resource management, system management, timer management, memory management, information management, queue management and so on.These functions are used though API service functions of the core.The system software platform use uC/OS-II real-time operating system core simplified the design of application system and made the whole structure of the system simple and the complex application hierarchical.The design of the whole system includes the tasks of the operating system and a series of user applications.The main function of the system is mainly to realize the initialization of the system hardware and the operating system.The initialization of hardware includes interr-upt、keyboard、LCD and so on.The initialization of operating system includes the control blocks and events control blocks, and before the start of multi-task schedu-ling, one task must be started at least.A start task has been created in this system, which is mainly responsible for the initialization and startup of clock, the start-up of interruption, the initialization of communication task module, as well as the division of tasks and so on.The tasks must be divided in order to complete various functions of the real-time multi-task system.苏州大学本科生毕业设计(论文)

Figure6.Functional tasks of the system software

Figure6 shows the functional tasks of the system software.According to importance of the tasks and the demands of real-time, the system applications are divided into six tasks with different priority, which including the tasks of A/D data acquisition, system monitoring, receive queue, data send, keyboard input, LCD display.The A/D data acquisition task demands the highest real-time requirements and the LCD display task is the lowest.Because each task has a different priority, the higher-priority task can access the ready one by calling the system hang up function or delay function.苏州大学本科生毕业设计(论文)

Figure7.Chart of AD7715 data transfer flow

Figure 7 shows the data conversion flow of AD7715.The application A/D

conversion is an important part of the data acquisition system.In the uC/OS-II real-time operating system core, the realization process of A/D driver depends mainly on the conversion time of A/D converter, the analog frequency of the conversion value, the number of input channels, the conversion frequency and so on.The typical A/D conversion circuit is made up of analog multiplexer(MUX), amplifier and analog to digital converter(ADC).苏州大学本科生毕业设计(论文)

Figure8.Diagram of the application transfer driver

Figure8 shows the application procedure transfer driver.The driver chooses the analog channel to read by MUX, then delay a few microseconds in order to make the signal pass through the MUX, and stabilize it.Then the ADC was triggered to start the conversion and the driver in the circle waiting for the ADC until its completion of the conversion.When waiting is in progress, the driver is detecting the ADC state signal.If the waiting time is longer than the set time, the cycle should be end.During waiting time of the cycle, if the conversion completed signal by ADC has been detected, the driver should read the results of the conversion and then return the result to the application.苏州大学本科生毕业设计(论文)

Figure9.Diagram of serial receive

Figure9 shows the serial receive diagram with the buffer and signal quantity.Due to the existence of serial peripheral equipment does not match the speed of CPU, a buffer zone is needed, and when the data is sending to the serial, it need to be written to the buffer, and then be sent out through serial one by one.When the data is received from the serial port, it will not be processed until several bytes have been received, so the advance data can be stored in buffer.In practice,two buffer zones, the receiving buffer and the sending buffer, are needed to be opened from the memory.Here the buffer zone is defined as loop queue data structure.As the signal of uC/OS-II provides the overtime waiting mechanism, the serial also have the overtime reading and writing ability.If the initialization of the received data signal is 0, it expresses the loop buffer is empty.After the interrupt received, ISR read the received bytes from the UART receiving buffer, and put into receiving buffer region, at last wake the user task to execute read operation with the help of received signal.During the entire process, the variable value of the current bytes in recording buffer can be inquired, which is able to shows whether the receive buffer is full.The size of the buffer zone should be set reasonable to reduce the possibility of data loss, and to avoid the waste of storage space.CONCLUSIONS

With the rapid development of the field of industrial process control and the

苏州大学本科生毕业设计(论文)

wide range of applications of network, intelligence, digital distributed control System, it is necessary to make a higher demand of the data accuracy and reliability of the control system.Data acquisition system based on single-chip has been gradually eliminated because the problem of the poor real-time and reliability.With the fast popularization of embedded ARM processor, there has been a trend that ARM processor can alternate to single-chip to realize data acquisition and control.The embedded ARM system can adapt to the strict requirements of the data acquisition system, such as the function, reliability, cost, size, power consum-ption, and so on.In this paper, A kind of ARM-based embedded remote I/O data acquisition system has been researched and developed, whose hardware platform use 32-bit embedded ARM processor, and software platform use open-source RTOS uC/OS-II core.The system can be widely applied to electric power, petroleum, chemical, metallurgy, steel, transportation and so on.And it is mainly used in the collection and monitoring of all kinds of electrical and thermal signals such as voltage, current, thermal resistance, thermocouple data of the production process.Then these data can be sent to the remote DAS, DCS monitoring system through RS485 or Ethernet interface.The system has the dual redundant network and long-distance communication function, which can ensure the disturb rejection capability and reliability of the communication network.苏州大学本科生毕业设计(论文)

基于嵌入式ARM平台的远程I / O数据采集系统的研究和开发

导言

随着网络化,智能化,数字化分布式控制系统的广泛使用,基于单芯片的数据采集系统不仅在处理能力上受限制,并且在实时性和可靠性方面也出现了问题。近几年来,随着工业过程控制领域的迅速发展和嵌入式ARM处理器的迅速普及,ARM处理器代替单芯片实现数据的采集和控制成为了趋势。嵌入式ARM系统能适应数据采集系统的严格要求,如功能性,可靠性,成本,体积,功耗等等。

在本文中提出一种新型的基于ARM嵌入式平台的远程I / O数据采集系统已被研制开发,它可以衡量各种电气和热参数,如电压,电流,热电偶,热电阻等等。那个测量数据可以显示在液晶显示器的系统中,同时可通过使用Modbus / RTU或的Modbus / TCP协议从RS485或以太网网络传送到DAS或DCS远程监控系统。该系统具有双冗余网络和长途电通信功能,它可以确保通信网络的干扰抑制能力和可靠性。基于高性能嵌入式ARM微处理器的新一代远程数据采集和监控系统具有重要的应用意义。

整个系统的结构设计

基于嵌入式ARM的平台的远程数据采集和监控系统的整个结构图在以下的图1中展示。在这系统的计划中,通过使用广泛用于多种行业如电气电力,石油,化工,冶金,钢铁,运输等的嵌入式ARM处理器来开发远程I / O数据采集模块。该系统主要用于的集中采购和将各种电和热信号如电压,热电阻,热电偶在生产过程中进行数字转换。转换的数据可直接在液晶显示器上显示,也可以通过使用的Modbus / RTU或的Modbus / TCP协议的RS485总线或以太网网络通信接口被发送到嵌入式控制器。嵌入控制器平台的数据通过进一步以太网的分析和处理被传送至远程监控中心的工作站。与此同时,这些数据可以存储在远程监控中心数据库服务器的实时数据库中。该系统具有双冗余网络和远程通讯功能,它可以确保通信网络的干扰抑制能力和可靠性。

基于嵌入式ARM远程I / O数据采集系统的硬件平台使用32位ARM嵌入式微处理器和软件平台使用的是开源的并且可移植,削减和巩固的实时多任务操作系统的第二代UC / OS核心。实时操作系统(RTOS)使设计和应用的扩大变得非常容易,增加新的功能时也没多大变化。通过几个独立的任务的应用,实时操作系统使得应用的设计过程极为简单。

苏州大学本科生毕业设计(论文)

系统的硬件设计

基于嵌入式ARM平台的远程I / O数据采集系统具有很高的普遍性,每个购置设备配备24收购方式的I / O渠道且彼此孤立。每个I / O通道可以选择不同的电压和电流信号,以及温度信号如热电阻,热电偶等。在05V的,010毫安和4100TL智能嵌入式以太网串口转换模块。该ZNE500mV的电压信号可以直接接到模拟多路复用器(复用器)的INPx正极和INNx负极。45V的电压信号必须用阻抗转换。热电阻的电阻信号如Cu50,Cu100,Pt50和Pt100应在接到某些频道的复用器INPx正极和INNx负极前连接一1毫安的恒流源。

图4显示了使用16位ADC芯片AD7715的ADC信号电路。芯片与系统的连接非常简单,只需要CS(芯片选择),SLCK(系统时钟),DIN(数据输入),DOUT(数据输出)和DRDY(数据准备)5根线。

由于ARM微处理器具有高速,低功耗,低电压等优点,这使它在低噪音,纹波权力,瞬态响应性能,时钟来源的稳定,功率控制和许多其他方面需要有更高的要求。为了改善系统的可靠性该系统复位电路中使用特殊的微处理器电源监测芯片MAX708S。图5展示了该系统复位电路。

系统软件的设计与实现

苏州大学本科生毕业设计(论文)

基于嵌入式ARM平台的远程I / O数据采集系统的软件使用的是开源的并且可移植,削减和巩固的实时多任务操作系统的第二代UC / OS核心。RTOS的关键部分是实时多任务的核心,其基本功能包括任务管理,资源管理,系统管理,计时器管理,内存管理,信息管理,队列管理等。通过API服务职能核心使用这些功能。

该系统软件平台使用的是单一化的uC/ OS第二代实时简化操作系统核心,使整个结构系统简单和应用层次复杂。整个系统的设计包括操作系统的任务和一系列的用户应用程序。系统的主要职能是实现系统硬件和操作系统的初始化。硬件初始化包括中断,键盘,液晶显示器等。操作系统初始化包括控制模块和事件控制,在多任务调度前,至少有一个任务开始。一个开端任务已建立在这一系统,这系统主要负责初始化和启动的时钟,开办中断,通信任务模块的初始化,以及任务分工等。为了完成实时多任务系统的多种职能那个任务必须被划分。

图6显示系统软件的功能任务。根据任务的重要性和实时要求,系统的应用曾划分为六个不同优先级的任务,其中包括A / D数据采集任务,系统监控,接受队列,数据传送,键盘输入,液晶显示屏显示。A / D数据采集任务要求最高的实时要求和液晶显示器显示任务是最低的。因为每个任务都有不同的优先事项,通过使用系统挂断功能或延迟功能更高的优先任务可以开始已经准备好的任务。

图7显示的是AD7715的数据转换流。A / D转换器的应用是数据采集系统的一个重要组成部分。在uS/ OS的第二代实时操作系统的核心中,A / D驱动程序的实现过程主要取决于A / D转换器的转换时间,有转换价值的模拟频率,输入通道的数量,转换频率等等。典型的A / D转换电路由模拟复用器(复用器),放大器和模拟到数字转换器(ADC)组成。

图8显示了申请程序转移的驱动程序。驱动程序可以在模拟通道读取由复用器,那么几微秒的延迟,以便使信号通过多路开关,并使其稳定。然后,当转换开始时,ADC被触发,并且驱动程序在一个周期内等待ADC的触发,直到完成转换。当等待的进展,该驱动程序检测ADC的状态信号。如果等待时间比规定的时间越长,周期应该结束。在等待的周期时间,如果转换完成ADC的信号被检测到,驱动程序应改为转换的结果,然后将结果返回给应用程序。

图9显示了缓冲区和信号量的序列接收图。由于外围串行设备的存在CPU的运行速度匹配,一个缓冲区是必要的,当数据发送到序列,它必须被写入缓冲区,然后通过串行逐一地被发送出去。当从串行端口收到数据,这些数据将不会被处理直到收到一些字节,因此先前的数据可以存储在缓冲区中。在实践中,两个缓冲区,一个接收缓冲区和一个发送缓冲区,它们是需要从内存开放出来。在这里缓冲区像循环队列数据结构一样被定义。

由于uC/OS-II提供额外时间等待机制的信号,串口也具有额外的阅读和写作能力。如

苏州大学本科生毕业设计(论文)

果收到的数据信号初值为0,它表示循环缓冲区是空的。在中断收到后,ISR从UART接受缓冲区中读到收到的数据,并投入接收缓冲区域,最后通过收到的数据开始用户执行读操作的的任务。在整个过程中,变量价值目前字节在存储缓冲区中的字节的变量值是可以被询问的,这能够表明接收缓冲区是否已满。为了降低数据丢失的可能性和避免浪费存储空间应合理地设置缓冲区的大小。

结论

随着工业过程控制领域的快速发展和网络,智能,数字化分布式控制系统广泛应用,有必要发展对数据准确性和控制可靠性要求更高的系统。由于较差的实时性和可靠性基于单片机数据采集系统已逐步被淘汰。随着嵌入式ARM处理器的迅速普及,ARM处理器替代单芯片实现数据采集与控制成为了一种新的趋势。嵌入式ARM系统能够适应数据采集系统的严格要求,如功能,可靠性,成本,大小,耗电量等等。

ARM平台 篇3

摘要:文章采用Samsung公司S3C2440A微处理器设计了嵌入式系统硬件开发平台,给出了硬件结构设计思路,着重分析了以太网端口和IIS音频接口,简要的说明了USB接口,UART接口,含触摸屏的LCD接口电路的设计方法,并总结了嵌入式系统测试和调试的基本方法。

关键词:嵌入式系统;ARM;硬件设计;S3C2440A

中图分类号:TP303文献标识码:A文章编号:1006-8937(2009)10-0014-02

随着计算机技术、微电子技术和网络技术的迅速发展,嵌入式系统在工农业等诸多领域得到了广泛的应用。传统的8位单片机已经暴露了本身资源有限的缺点,越来越不能适应日渐复杂的应用需求,而随着32位处理器价格的不断下降,采用更高性能的32位处理器作为嵌入式系统的核心成为更加合理的选择。ARM处理器是目前公认的业界领先的32位嵌入式RISC微处理器,已成为许多行业嵌入式解决方案的RISC标准。开发一个集嵌入式控制、高速数据采集和网络通信于一体,并提供友好的人机操作界面的硬件平台和多种总线接口,对于提高智能嵌入式系统可靠性、组网灵活性很有意义。据此文章主要以S3C2440A为例,完成了以太网接口,USB接口,UART接口,含触摸屏的LCD显示接口,IIS音频接口以及电源管理单元电路的嵌入式系统的硬件开发平台设计。

S3C2440A是Samsung公司设计的一款高性价比16/32位ARM9系列微处理器,内含一个由ARM公司设计的16/32位ARM920T RISC处理器核,采用五级流水线和哈佛体系结构,工作频率最高可达533MHz;同时还具备体积小、成本低、功耗低、资源众多等诸多特点。内部集成的常用资源主要有:外部存储控制器(SDRAM控制和片选逻辑);(最大支持4K色STN和256K色TFT屏),提供1通道LCD专用DMA;4通道DMA并有外部请求引脚;3通道UART(IrDA1.0,64字节TxFIFO和64字节RxFIFO);2通道SPI;1通道IIC-BUS接口(支持多主机);1通道IIS-BUS音频编码解码器接口;AC97解码器接口;兼容SD卡接口协议1.0版和MMC卡2.11版;2端口USB主机和1端口USB设备;4通道PWM定时器和1通道内部定时器,看门狗定时器;8通道10比特ADC和触摸屏接口;具有日历功能的RTC;相机接口(最大支持4096*4096像素);130个通用I/O口和24通道外部中断源等资源。这些资源大大的方便了应用系统的开发,同时节约开发成本,缩短开发周期,提高了系统的性价比。对于S3C2440A的特点和性能请查阅相关资料,文章不作叙述。

1嵌入式系统的硬件电路设计

1.1硬件系统结构

为降低系统开发难度,方便二次开发,系统采用核心板加底板的设计方案,核心板和底板之间通过连接器相连。这样可以在核心板不变动的情况下,更改底板的功能组成,以适用不同的功能。同时,由于核心板采用多层PCB板设计,而底板采用双层板即可,从而大大的降低了系统的成本。系统硬件结构如图1所示。

1.2核心板电路构成

微处理器:即S3C2440A,为系统的控制中心。

Flash电路:用于存放嵌入式操作系统及用户应用程序,其特点是系统掉电后数据不易丢失。

SDRAM电路:系统代码的运行场所,其特点是系统掉电后数据即丢失。

晶振电路:12MHz 的无源晶振通过芯片内部的PLL电路为S3C2440A芯片提供高达533MHz的时钟频率。

JTAG接口:采用ARM公司的提供的标准20脚JTAG仿真调试接口电路,S3C2440A芯片内部有JTAG核,因此,可以通过外部JTAG调试电缆或仿真器与开发系统连接调试和编程。

复位电路:为系统提供复位信号。为防止干扰信号引起误复位操作,常采用专用复位芯片来产生复位信号。如:MAX811等。

1.3扩展板电路

S3C2440A本身就集成了USB Host 控制器和USB Device 控制器、LCD控制器、3个独立的、可以工作在基于中断和DMA模式下的串行口,并接支持红外发送、接收功能,SD卡和MMC卡控制器、摄像头接口等。因此,上述接口电路只需要参照芯片使用手册接线即可使用。

1.3.1网络接口设计

S3C2440A本身并没有网络接口,通过扩展网络接口的模式可以为系统提供以太网接入;以太网接入是本系统的一个重要的功能模块,为系统进行下载文件、远程调试等操作提供了条件。原理图如图2所示。

本系统的以太网控制电路由以太网芯片、网络隔离变压器和RJ-45接口组成,选用的以太网芯片为DM9000。这是一款提供了通用处理器接口的以太网控制芯片。DM9000内部集成了MAC 和PHY,它能提供10/100Mbps的PHY 接口。它为处理器提供了8 位和16 位数据宽度的内部存储访问接口,并且内部包含了4K 的Dword SRAM。网络隔离变压器的作用主要有两个:?譹?訛传输数据,它把PHY 送出来的差分信号用差模耦合的线圈耦合滤波以增强信号,并且通过线圈耦合到不同电平的另外一端连接到网线;?譺?訛隔离网线连接的不同网络设备间的不同电平,以防止不同电压通过网线传输损坏设备。

1.3.2IIS音频接口设计

IIS是一种串行总线设计技术,主要针对数字音频处理技术和设备,如便携CD机、数字音频处理器等。IIS将音频数据和时钟信号分离,避免由时钟带来的抖动问题,因此,系统中不再需要消除抖动的器件。

IIS总线仅处理音频数据,其它信号(如控制信号)单独传送。基于减少引脚数目和布线简单的目的,IIS总线只由3根串行线组成,即时分复用的数据通道线(continuous serial clock,SCK)、字选择线(word select,WS)和时钟线(serial data,SD)。使用IIS技术设计的系统的连接配置如图3所示。其中WS信号线指示左通道或右通道的数据将被传输,SD信号线按高有效位MSB到低有效位LSB的顺序传送字长的音频数据,MSB总在WS切换后的第一个时钟发送。如果数据长度不匹配,接收器和发送器将自动截取或填充。文章中使用的音频芯片是PHILIPS公司的UDA1341TS音频数字信号编译器。UDA1341TS可以将立体声模拟信号转换为数字信号,同样也可以将数字信号转换为模拟信号,并且可用PGA(可编程增益控制)和AGC(自动增益控制)对模拟信号进行处理。对于数字信号,该芯片提供了DSP(数字音频处理)功能。IIS音频数据接口电路如图4所示。本系统把IIS音频数据接口与PHILIPS公司的UDA1341TS音频数字信号编译器相连接,得到MICROPHONE音频输入通道和SPEADER音频输出通道。

2嵌入式系统调试和测试

2.1调试环境

PCB板制作好后,进行系统调试需要进行硬件调试和软件调试两个过程。其中,硬件调试需要使用示波器、万用表、稳压电源等工具;软件调试则使用SJF2440软件或H-Jtag软件烧写系统引导程序和测试程序。焊接PCB时应首先焊接电源模块,只有在电源模块测试正常时才能焊接其它的模块,否则在通电测试时会损坏其它模块的芯片;另外,在进行测试时还要注意避免人为造成的短路现象。

2.2硬件调试

①加电前的检查:加电调试之前要对照电路原理图和实际线路进行检查,看PCB板是否有短路、断路情况,看在元器件焊装过程中是否有错装、短路、错接、多接、少接等现象;用万用表检测焊接和接插件是否良好;各焊点之间有无短路,焊点是否存在虚焊;集成电路芯片是否焊装正确,二极管、三极管、电解电容等有极性的器件的极性是否正确;电源的极性连接是否正确、正负极间是否存在短路的情况。

②加电检测和调试:做完加电前的检查,确认无误后,电源输入端接入5V电压。观察有无异味、冒烟、器件发烫等现象。当发现有异常情况时要立即切断电源,并根据故障现象分析故障原因,然后排除。如无异常,用万用表分别测量个关键点和各集成芯片的电源端的电压值,各输入和输出端的高、低电平值及逻辑关系等是否正常。如若这些都没有问题,就通过示波器来检测各相关点的波形是否正常,然后根据波形来分析故障的原因,直至最终故障排除。

2.3软件调试

在PC机上运行SJF2440或H-Jtag软件,烧写已经编译好的系统引导程序,看系统能否正常启动,输出是否正常,烧写系统测试程序看输入输出是否正确,否则分析原因并排除故障。烧写前要确保引导程序和测试程序是正确可用的。

3结 语

本系统使用S3C2440A 进行嵌入式系统硬件平台的搭建,为系统的进一步开发做好了准备。本系统采用核心板加底板的设计方案,方便二次开发。要实现不同的功能,只需要更改底板的设计即可,降低了开发难度和开发成本,也缩短了开发周期。

参考文献:

[1] 江俊辉.基于ARM的嵌入式系统硬件设计[J].微计算机信息,2005,(21):120-122.

ARM平台 篇4

随着指纹识别技术的飞速发展,指纹识别技术已应用于各种安全系统中。大多数指纹识别平台都是连接PC的桌面应用系统,这就导致了指纹识别系统的成本偏高,其应用得不到普及。为了进一步提高指纹识别应用的便利性,嵌入式的指纹识别系统应运而生。如何设计出好的指纹识别算法及相匹配的硬件平台,成为该类设备设计的核心问题。因此,开发出识别率高,处理速度快,扩展性好,廉价的嵌入式平台有着广阔的市场前景和研究价值。

2 系统硬件平台组成

本文中系统硬件平台是在参考了许多开发板设计的基础上,并结合课题的内容进行选件并配置的,意在以最简单的方式来实现指纹识别的硬件设计。指纹识别系统硬件平台结构图如图1所示。

指纹识别系统硬件平台的主要配置如下:

CPU:三星S3C2440A,运行最高主频400MHz;SDRAM:HYS57V561620(两片);Nand Flash:三星K9F1208UOM;指纹采集模块:TFS-E12型指纹识别模块;LCD显示:台湾东华3.5寸真彩TFT液晶屏WXCAT-35TG3#001;复位电路:采用电源监控器MAX811;JTAG:用来完成Linux内核移植,交叉编译,驱动下载与交叉调试。

2.1 CPU模块

课题选用性价比较高的32位ARM微处理器S3C2440。这是一款由Samsung半导体公司为高端手持设备或其他一般应用而设计的低功耗、高集成度的微处理器。最突出的特点是它的C P U内核采用A R M公司的3 2位ARM920T内核(主频400MHz)。整体设计融合了MMU、AMBA、Harvard(哈佛)结构,具有独立的1 6 K B指令Cache和16KB数据Cache。ARM920T系统扩充包括Thumb协处理器、ICE(In Circuit Emilator)中断调试支持和32位硬件乘法器。S3C2440在ARM920T内容基础上扩展了一系列完整的通用外围器件,不需要增加附加配置,使系统成本降至最低[1]。

2.2 存储器模块

由于考虑到Flash的性能、容量、成本及耐用可靠性,并结合项目的需求,我们选用K 9 F 1 2 0 8 U O M作为N A N D存储器,其主要特点是:

1.编程电压:2.7V~3.6V;

2.存储空间组织:(64M+2M)×8bit;

数据空间:4planes×1kblocks×32pages×512Byte;

3.命令/地址/数据/复用I/O端口;

4.硬件数据保护:当电源波动时,擦除或编程操作停止;

5.可靠性:可经受100K次的擦写操作,数据可保存十年。

与Flash存储器相比较,SDRAM虽没有掉电保持数据的特性,但由于其集成度高,单片存储容量大,且读/写速度快,因此,在设计嵌入式系统时,经常用作主存储器。本文采用HY57V561620BT-H作为SDRAM芯片,工作电压为3.3 V,存储容量为4 B a n k s×4 M b i t s×16bits,16位数据宽度,由于S3C2440A数据宽度是32位,所以需要两片SDRAM[2]。

2.3 指纹采集模块

本文采用深圳十指科技有限公司的TFS-E12指纹识别模块,它设计精巧,电路只有:40*58mm,采用高精密的光学成像元件,采用面光源,成像速度快。模块采用微功耗设计,具有低电压报警功能,模块有多级的安全级别,可以自主设置来适应不同场所的安全要求。

2.4 LCD显示模块

S3C2440的内置LCD控制器支持单色、每像素2位(4级灰度)、每像素4位(16级灰度)、也支持每像素8位(256色)和每像素12为(4096色)的彩色LCD,并且也支持每像素16位和每像素24位的真彩显示。LCD控制器可以通过编程选择支持不同的LCD屏的要求,例如行和列像素、数据总线宽度、刷新频率等。本文采用台湾东华3.5寸真彩T F T液晶屏W X C A T-3 5 T G 3#0 0 1。

3 硬件平台的电路设计

3.1 存储模块的设计实现

系统的存储模块包括F L A S H和S D R A M两部分。由于当前N O R F L A S H存储器的价格比较昂贵,而SDRAM和Nand Flash存储器的价格相对来说比较合适,因此就有了从Nand Flash启动和引导系统,而在S D R A M上执行主程序代码的做法[3]。

Nand Flash与S3C2440处理器连接的电路如图2所示。

从图中可以看出,NAND Flash接口信号较少,系统对N A N D设备数据访问的时候,需要先向N A N D设备发出相关命令和参数,然后再读出需要的数据。另外,S3C2440处理器针对NAND设备集成的硬件ECC校验可以大大提高N A N D设备的读写效率。

S D R A M硬件连接完成后,由于C语言使用的堆栈空间和数据空间都放在S D R A M里面,因此还需要在系统启动后对B A N K 0相关的寄存器进行特殊的配置,如果没有对S D R A M正确初始化,系统就无法正常工作。寄存器的设置可以通过软件来完成,也可以通过J T A G仿真器来设置。

3.2 LCD显示模块的电路设计

S3C2440有内置的LCD控制器,控制器的主要作用是将定位于系统存储器的显示缓冲区的L C D图像数据传送到外部L C D驱动器。用户只需要读写一系列的寄存器,便可完成配置和显示控制。系统L C D接口电路如图4所示。

S3C2440A内置的LCD控制器多达5个,还有帧缓冲区起始地址寄存器、中断屏蔽寄存器等,这也是它支持多灰度、多显示模式、多分辨率的显示屏的原因,因此应恰当地设置寄存器的值。

3.3 JITG接口电路设计

通过JTAG对系统进行调试主要由以下几个引脚实现:T M S、T C K、T D I、T D O、T R S T,分别为测试模式选择、测试时钟输入、测试数据输入、测试数据输出和测试复位脚。通过J T A G接口,可完成如下基本操作:

(1)停止程序的运行;

(2)检查和修改ARM的内核状态;

(3)观察和修改内存;

(4)恢复程序的运行。

此外,通过JTAG接口还可以对Flash器件进行在线编程,将程序烧写到Flash中,因而它是开发调试嵌入式系统的一种简洁高效的手段。S3C2440的JTAG调试电路如图5所示。

3.4 指纹采集模块

TFS-E12指纹识别模块采集的指纹图像为280*280像素,每个像素灰度由8位表示。在上传过程中,为了减小数据量,在横/纵方向进行跳像素采样,这样图像变为140*140,并取灰度的高4位,传输从第一行开始逐行进行,每一行从第一个像素开始,总共传输140*140/2个字节的数据。每两个像素合成一个字节传输(前一像素在低四位,后一像素在高四位)。

4 嵌入式操作系统开发环境

嵌入式操作系统是嵌入式应用软件的基础和开发平台,它是一段嵌入在目标代码中的软件,用户的其他应用程序都建立在操作系统之上。Linux操作系统以价格低廉、功能强大、易于移植而且程序源代码全部公开等优点正在被广泛采用[4],本文就采用的Linux操作系统。

对于嵌入式开发,最初的嵌入式设备是一个空白的系统,需要通过主机对它构建基本的软件系统,并烧写到设备中;另外,嵌入式设备的资源并不足以用来开发软件。所以就要用到交叉开发模式:在主机上编辑、编译软件,然后在目标板上运行、验证程序。进行嵌入式Linux开发时一般可以分为3个步骤[5]:在主机上编译Bootloader,然后通过JTAG烧入单板;在主机上编译嵌入式Linux内核,通过Bootloader烧入单板或直接启动;在主机上编译各类应用程序,单板启动内核后通过N F S运行它们,经过验证后再烧入单板。一般主机和目标机通过JIAG、串口和网络来连接,如图6所示。

5 结束语

本文是在对A R M芯片的学习和掌握的基础上,合理运用S 3 C 2 4 4 0芯片的性能特点,完成了基于A R M S3C2440的指纹识别系统的初步设计,我们在硬件平台的搭建上参考了许多开发板,并以其原有的标准电路为标准来设计电路。主要分析了硬件平台由哪几部分组成,并对每一部分的器件选择和相应的性能做了分析,通过深入分析后对系统的存储模块、L C D显示模块、JTAG接口和指纹采集模块进行了电路设计。文章最后介绍了嵌入式操作开发环境,通过操作系统移植使嵌入式指纹识别系统得以实现。

参考文献

[1]支华,巢佰崇,陈雪丰.基于ARM的指纹识别平台设计.地理空间信息[J].2005,(3):23-24.

[2]李春光,赵月,王旭春.嵌入式微处理器与FLASH闪存的接口设计实现[J].微计算机信息,2006,(20):154-157.

[3]CAUDELA G T,GROTHER P J.A Pattern Level Classification Automation System for Fingerprint[J].Tech-nology Report NISTIR,2007,(3):56-57.

[4]张群忠,沈建华.ARM&Linux嵌入式系统Bootloader的研究与设计[J].计算机应用与软件,2006,(12):97-99.

ARM平台 篇5

1 系统硬件设计

系统以模块化为设计思路,主要硬件电路由电源模块、4G模块、DSP模块、北斗模块和显示模块5部分组成,图1所示为整体硬件结构图。

电源部分主要完成整个电路板所有元件的供电功能。使用5 V外部直流供电,作为ARM模块和4G模块的电源;经过LM1117-3.3转化成3.3V直流电作为ARM模块、DSP模块和北斗模块等的电源;经过LM1117-1.8芯片转化成1.8 V直流电供给DSP芯片使用。

北斗模块使用UM220-III芯片采集卫星提供的定位信息。UM220-III是一款拥有完全自主知识产权的GNSS So C芯片,其集成度高、功耗低、体积小,可同时支持BD2 B1、GPS L1两个频点,数据更新频率为1次/s。

DSP模块主要接收北斗模块的数据,并对接收的数据进行算法处理。使用TI公司的TMS320VC5509A芯片,其主频最高达200 MHz,内部有双乘法器,支持DMA操作;使用AMD公司生产的AM29LV800B作为DSP程序存储芯片,使用Aletra公司生产的EPM240型号CPLD作为DSP与Flash之间数字逻辑电路。DSP外接Flash截图如图2所示,其中74HC138和74HC245均由CPLD电路实现。

ARM模块主要完成与DSP通信,通过串口调用数据,并根据网络情况将定位信息显示在屏幕上。ARM使用SAMSUNG公司的S3C6410芯片,其采用ARM11的内核,当核电压为1.1 V时,ARM可运行到553 MHz;电压在1.2 V的情况下,可运行到667 MHz。通过AXI、AHB和APB组成的64/32 bit内部总线和外部模块相连,可连接丰富的外部设备,烧写镜像文件方便。

2 系统软件设计

2.1 北斗信息优化设计

北斗信息经UM220-III进入DSP中进行处理。常用的定位优化算法有差分DGPS法[1]、算术平均值法[2]、粒子滤波法[3]、无迹卡尔曼滤波(UKF)法等[4]。UKF算法避开了求解雅可比矩阵,因此计算量大幅减少,易于在硬件中实现,定位精度可达到泰勒级数三阶展开式[5,6]。UKF算法实现过程如下。

2.1.1 初始化

提取北斗信息中的经度值、纬度值、速度值和航向角值组成状态向量x。经过前期大量的测量计算得到北斗数据状态向量的均值和协方差矩阵。

2.1.2 状态估计

计算2n+1(n=4)个样本点以及相应的权值

其中,pk-1是x的协方差;n表示系统状态维数;κ是微调参数。

根据第一步计算的Sigma点计算样本眼时间的传播

下面求出f函数的具体形式。从地球上一点A出发,下一状态至B点。设A点的状态向量为

B点状态向量为

设角c为A点和B点与地球球心的夹角,a角为B点和真北方向与地球球心的夹角,Az为A点处的方位角,则

求系统状态均值和方差的一步预测

α确定x周围的Sigma点分布,λ确保矩阵(n+κ)pk-1为半正定矩阵,待选参数β用于提高方差精度。

根据系统量测方程求取状态一步预测的传递值

其中,h为系统函数

2.1.3 测量更新方程

计算出定位的估计值,然后对各个状态量进行更新

其中,py,k是量测方差矩阵;pxy,k是状态向量与量测向量的协方差矩阵。

计算UKF增益,更新状态向量和方差

其中,K为UKF增益矩阵;yk为最终优化的状态向量。

2.2 基于4G信号的地图显示设计

DSP经过UKF算法处理后的北斗数据经串口传送至ARM处理器。ARM使用2.6.38版本的嵌入式Linux系统,通过配置内核加入4G模块和UART等驱动。

编写嵌入式版本的QT程序作为上位机程序,主要任务是将DSP传送的数据加载到地图上。作为显示的地图有两种类型,一种是在网络条件良好的状态下调用百度API函数显示网络地图,另一种是不使用网络信号调用mitab库显示的本地地图。QT程序通过向命令控制台等时地发送命令”ifconfig 4G|grep‘RUNNING’”来判断网络信号的状态,若返回字符中包含’RUNNING’则4G信号已连接,此时显示网络地图;若返回字符中没有包含’RUNNING’则启动本地地图显示。

在嵌入式平台上移植BOA服务器[7,8],用于建立显示地图的主页。调用网络地图时,QT程序将北斗定位信息传送至XML文件中,网页使用Ajax技术[9]将XML中的信息传送至网页,通过调用百度API函数[10]调用地图控件,通过百度地图转换函数BMap.Conventor.translate()将北斗CGCS 2000标准坐标转化成GCJ-02和BD-09二次加密的百度坐标,最后将定位信息以定位点的形式显示到屏幕上。

mitab是一个开放源码的C++库,提供了丰富的接口函数和C++类,支持MIF和TAB文件读写、空间对象几何图形和属性数据读取、设置投影方式等,使用抽象数据模型来解析它所支持的空间对象的数据结构[11]。编译嵌入式版本的mitab库并将其移植到ARM中。当调用本地地图时,QT程序调用mitab库,将定位点显示到MIF类型的本地地图上。整体北斗定位信息的流向如图3所示。

3 系统实现及测试

为排除其他可能的影响,系统选择在晴天空旷的位置,随机选择不同的地点进行测量。图4和图5分别为4G条件下和非4G条件下在哈尔滨工程大学21A西南角的定位显示图。

通过查询串口可得到当前定位点的经纬度为45.775 036和126.681 365。在谷歌地图上找到对应的点如图6所示,可看出其定位效果要优于离线地图。

经大量的数据统计获得如表1所示的结果。

从表1中的数据可看出:(1)系统大幅度地提高了北斗模块的定位精度,在4G信号和非4G信号下系统的精度分别提升了69.2%和63.7%。(2)在4G条件下和非4G条件下的定位精度有一定的差距。产生误差的原因主要有两个:一是本地地图绘制不够精确,导致图形与实际地图存在误差;二是在显示本地地图时调用QT中的QGraphics Item类引入了偏移误差。

4 结束语

文中的统计数据均在天气良好、四周空旷的位置测量,若考虑系统的实用性,还应该测试在不同地理气候条件下本系统的定位性能。系统适用于对功耗要求低的场合,在日后的研究中,可通过向服务器中添加更多的API函数来增加网络地图的功能,增加陀螺仪、加速计等传感器实现无定位信号下的惯性导航。也可通过升级芯片来提升整体系统的性能。

ARM平台 篇6

人工神经网络是根据人们对生物神经网络的研究成果设计出来的, 由一系列的神经元及相应的连接构成, 具有良好的数学描述, 不仅可以用适当的电子线路来实现, 更可以方便地用计算机程序加以模拟。早在20世纪40年代初期, 心理学家Mc Culloch、数学家Pitts就提出了人工神经网络的第一个数学模型, 从此开创了神经复学理论的研究时代;其后, 学者们又先后提出了感知空口无凭网络、BP网络、自组织网络、Hopfield网络、Elman网络等各种模型。目前已有200多种网络模型, 十几种常用算法, 使得人工神经网络技术得以蓬勃发展。它的应用领域也十分广阔, 特别是在信息、、军事、化学、水利等工程领域, 神经网络的作用越来越显著。

二、人工神经网络的特点

人工神经网络在结构上并行处理、分布式存储, 因此运算速度快, 具有较理想的容错性, 同时还具有自学习、自组织、自适应能力。它是由大量的神经元广泛互连而成的系统, 这个结构特点决定着人工神经网络具有高速信息处理的能力。

人工神经网络的知识存储容量很大, 在神经网络中, 知识与信息的存储表现为神经元之间分布式的物理联系。它分散地表示和存储于整个网络内的各神经元及其连线上, 每个神经元及其连线只表示一部分信息, 而不是一个完整的具体概念。只有通过各神经元的分布式综合效果才能表达出特定的概念和知识。

由于人工神经网络中神经元个数众多以及整个存储信息容量的巨大, 使得它具有很强的不确定性信息处理能力。即使输入信息不完全、不准确或模糊不清, 神经网络仍然能够联想思维存在于记忆中的事物的完整图像。只要输入的模式接近于训练样本, 系统就能通过联想记忆给出正确的推理绪论。

正是因为人工神经网络的结构特点和其信息存储的分布式特点, 使得它相对于其他的判断识别系统, 如专家系统等, 具有另一个显著的优点———健壮性。生物神经网络不会因为个别神经元的损失而失去对原有模式的记忆。最有力的证明是, 当一个人的大脑因意外事故受轻微损伤之后, 并不会失去原有事物的全部记忆。人工神经网络也有类似的情况。因某些原因, 无论是网络的硬件实现还是软件实现中的某个或某些神经元失效, 整个网络仍然能继续工作。

人工神经网络同现行的计算机不同, 是一种非线性的处理单元。只有当神经元对所有的输入信号的综合处理结果超过某一门限值后才输出一个信号, 因此神经网络是一种具有高度非线性的超大规模连续时间动力学系统。它突破了传统的以线性处理为基础的数字电子计算机的局限, 标志着人类智能信息处理能力和模拟人脑智能行为能力的一大飞跃。

(一) 人工神经网络的基本功能

1.联想记忆可以从不完整的信息和噪声干扰中恢复原始的完整信息, 并对从未遇到过的新情况能根据以往的经验做出合理的分析和判断。这一能力使其在图像复原、图像和语音处理、模式识别、分类等方面具有巨大的应用价值。

2.非线性映射可以用独特的方式对很复杂的非线性问题作分析、归纳和表述, 并做出合适的处理。

3.分类与识别神经网络可以很好地解决对非线性曲面的逼近, 可以以任意精度逼近任意曲线, 因此比传统的分类器具有更好的分类与识别能力。

4.优化计算神经网络经过动态演变过程达到稳定状态时, 对庆的能量函数最小, 从而其稳定状态就是问题的的最优解。

5.知识处理主要优点是能够自适应样本数据。当数据中有噪声、形变和非线性时, 它能够正常地工作。

(二) BP网络原理

误差逆传播神经网络, 简称BP (Back Propagation) 网络, 是应用最广的一种人工神经网络。人工神经网络模型可分为三类:前向网络、反馈网络和自组织网络。BP网络属于前向网络。主要用于函数逼近、模式识别、分类及数据压缩等方面。

三、方案设计

大多人工神经网络程序都是在计算机上运行的, 但在嵌入式领域中, 更多应用都是针对便携式设备的, 而目前嵌入式系统中, 内在容量和通用处理器的处理能力都无法与计算机相比, 这就限制了其处理能力, 导致了嵌入式系统在应用人工神经网络时有时效性不好的先天缺陷。在暂时不能提高芯片处理能力的情况下, 为了克服这个缺陷, 就要让嵌入式系统尽量少参加运算, 集中资源仅处理必要的任务来提高时效性。也就是说, 在应用神经网络技术时, 把运算量大的、耗时多的任务交给PC机先完成, 而仅把用户要使用的应用程序部分载入嵌入式系统, 这样可以大大地提高嵌入式系统在应用人工神经网络时的时效性。于是, 可以把整体工作分为两部分。第一部分包括网络的建立、学习训练以及检测。这部分应该在PC机上实现, 当网络经过训练、收敛后, 计算得到了合适的各网络参数, 将这些参数存入一个文件。第二部分包括重新复原网络、用户使用界面及其他对用户进行各种服务的应用程序。这部分程序将在嵌入式系统上运行, 需要注意的是, 在嵌入式系统使用神经网络处理问题之前, 必须把预先在PC机上经过长时间学习训练得到的网络参数文件先装入嵌入式系统。因为嵌入式系统要根据这些网络参数在嵌入式系统中重新复原出结构合理的神经网络。也可以直接把网络参数文件与第二部分的应用程序放在一起, 编译生成在ARM上运行的可执行代码, 然后下载到嵌入式系统中运行。

四、人工神经网络在ARM平台上的实现

目前, 成熟的BP网络算法代码很多。设计者只需要针对处理的特定问题而确定网络的规模, 即确定网络层数和每层神经元数目。也可以再选择适当的动量因子、学习步长等极少的几个参数, 然后调用BP网络算法代码进行迭代运算。直到网络收敛后, 将得到的网络各权值等参数存入网络参数文件就可以了。这一部分的工作在PC机上完成, 比较简单。第二部分是嵌入式系统中运行的程度, 应该按照实际问题的要求, 在需要时从第一部分生成的网络参数文件中取出各个网络参数复原网络。然后根据用户要求, 将输入模式神经网络, 由网络进行前身计算得出结果, 从而快速合理地解决问题。因为在嵌入式系统中, 只对网络进行前向运算, 所以运算量相当小, 瞬间即可完成。对于处理较复杂的非线性问题, 这种处理方法会比普通算法快, 并且因为它使用了第一部分在PC机上训练好的神经网络, 所以具有普通算法不具备的容错、联想、自适应能力, 而且整个应用具有非常好的健壮性。人工神经网络的应用部分只是作为解决问题的一种方法, 应该包含在应用程序内。应用程序代码写完毕后, 可以在PC上使用GNU提供的次序编译出ARM平台上的可执行代码。如果在ARM平台上移植了嵌入式Linux操作系统, 还可以使用GNU的调试工具, 如gdb、gdbserver、kgdb等, 方便地对目标板上Linux下应用程序进行调试。

结语

ARM平台 篇7

1 DMD的驱动原理及其驱动影响因素

1.1 DMD的驱动原理

数字微镜器件是一种基于半导体制造技术,由高速数字式光反射开关阵列组成[3]。将一个数字式光反射开关称为一个微镜单元。在呈像过程中,每个微镜单元对应了图像中的一个像素,通过控制微镜的旋转角度与时间来改变呈现的图像及其特性。图1为一个微镜单元的机械结构,微镜有3个微型电极,分别为:VON、VMIRROR、VOFF,其中VMIRROR为偏置电压,VON、VOFF为驱动电压。这3个微型电极可以被数字信号激活,控制微镜开关的电平可由式(1)和式(2)得到:

当V开为高电平、V关为低电平时,镜片迎着光源(开启),将会有一个白色像素通过镜头反射到屏幕上;当V开为低电平、V关为高电平时,镜片避开光源(关闭),镜面像素在荧幕上的位置呈现深色。实现了通过数字信号调节微镜单元的翻转方向,进而改变呈像。为了产生灰度变化的图像,需要控制微镜开关状态的时间。通过控制高电平的持续时间,即改变驱动波形的占空比实现:V开保持高电平的时间长,则微镜开启时间也长,对应的灰度像素就浅;V关保持高电平的时间长,则微镜关闭时间也长,对应的灰度像素就深。微镜工作示意图如图2所示。

1.2 DMD的驱动影响因素

在DMD芯片中,微镜是最小的工作单位,也是影响其性能的关键。DMD是微机电系统MEMS的一员,通过静电力的作用控制微镜的偏转[4],因此微镜的工作性能与其制作工艺息息相关。在微镜翻转的过程中,微镜在机械结构限位和控制电压的作用下,最终稳定在相应的位置[5],因此其机械结构与控制电压需要完美配合,才能保证微镜的完美工作。

通过上述分析可知,不同的制作工艺,不同的微镜机械结构都会对数字微镜器件的驱动波形提出不同的要求。针对不同的微镜,对应的最佳工作模式也有所不同,需要在驱动开发过程中寻找最佳的驱动波形模式。

2 系统功能与整体方案

2.1 系统功能

本系统由数字微镜驱动器和电压转换器两部分构成,实现驱动波形的设定、产生以及调整。其优点在于:(1)增强了系统的灵活性,方便扩展其他功能;(2)操作简单方便,可控性强。整个系统具有很强的可变性,针对不同的数字微镜器件,可以方便地设定驱动波形,调整驱动电压,进而确定最佳的工作状态,其中电压幅度范围可以达到10 V~60 V。

2.2 整体方案

系统整体设计分为两个部分:数字微镜驱动器和电压转换器。数字微镜驱动器主要完成接收PC的参数设定,产生波形、调整波形,其中与PC之间的通信是基于USB完成的。电压转换器主要完成驱动电压的转换,以及负载电流的采集与放大。

3 硬件电路设计与实现

3.1 数字微镜驱动器的硬件系统

数字微镜驱动器作为驱动波形实验平台的核心部分,其硬件系统如图3所示,该系统结合了ARM微处理器(S3C2440)与FPGA。ARM微处理器作为控制核心,主要实现以下功能:(1)与PC通信,实现对数字微镜器件驱动波形相关参数的编辑与输入;(2)与FPGA通信,传递目标驱动波形的相关参数以及控制指令;(3)控制光源控制器(色轮、LED、Laser);(4)控制触摸屏,用于菜单显示、状态显示以及简单的控制与设置;(5)处理电流反馈信息,并及时调整驱动波形。本系统充分利用了ARM微处理器丰富的外部接口,包括触摸屏、USB接口等,很好地提高了系统的实用性,操作更为人性化。

FPGA是本系统的另一个核心处理器,与ARM微处理器相比具有同步性好、精确度高、可靠性好等特点,更加适合用于最终产生驱动微镜进行快速翻转的驱动波形,本文所选用FPGA的时钟为100 MHz,满足了驱动波形的编辑需求,并且波形的编辑简单、操作容易,便于开发者方便快捷地确定微镜的最佳驱动波形。

3.2 电压转换器的硬件实现

电压转换器用于将FPGA输出的3.3 V的CMOS驱动信号转换成电压幅度,满足微镜阵列驱动要求的驱动波形,图4所示为电压转换器的电压转换原理图。在本电路中,选用IR2105作为MOS管的驱动芯片。这是一款高电压、高速度的MOS管驱动芯片,其输入的逻辑电平与CMOS电平以及TTL电平相兼容。因此,FPGA的输出信号可直接作为IR2105的输入信号,其输出信号HO与输入信号的相位一致,LO与输入信号的相位相反。当输入信号为高电平时,HO为高电平,LO为低电平,此时,Q1导通,Q2截止,输出高电平(VCC);当输入信号为低电平时,HO为低电平,LO为高电平,此时,Q1截止,Q2导通,输出低电平(0 V)。因此输出端得到高电平为VCC,低电平为0,与输入信号同相的驱动波形。其中VCC可以通过外加电源直接进行调节,高电平的调节范围取决于所选择的MOS管漏极能承受的最大电压,因此10 V~60 V的电压幅度范围可以轻松实现。当输出电压为VCC时,根据式(3)可知,负载电流只与负载有关,具有很强的电流驱动能力。

4 软件设计方案

4.1 ARM微处理器的控制功能

ARM微处理器作为控制的核心,其控制流程主要包括:光源的控制与检测、负载电流的检测、控制菜单的显示、触摸屏的控制以及驱动波形主要参数的编辑与传递。

在主函数执行的操作:对控制界面以及数字微镜的状态进行初始化;启动光源并检测其工作状态,一旦发现异常,即关闭光源;系统进入循环工作和检测状态,主要包括控制界面的检测、负载电流的检测以及光源的检测。根据控制界面的检测结果,执行相关的指令(改变参数、控制微镜开关等);分析负载电流的反馈大小调整驱动波形;光源工作异常时,及时退出循环,关闭光源。

4.2 FPGA的工作流程

在波形发生器的工作过程中,FPGA主要用于根据驱动波形的相关参数产生对应的驱动波形,其工作流程如下:置数字微镜于“关”的状态,当ARM微处理器有指令或参数传递时,执行相关指令。其中,ARM微处理器传递给FPGA的指令与参数包括驱动波形的基本信息与参数、波形的产生与停止控制等。

整个实验平台充分利用了ARM微处理器强大的驱动和通信能力,以及FPGA准确、快速的优势。在保证了驱动波形的准确性与多变性的同时,更加方便和人性化。

5 测试结果

在实验过程中,根据实验平台实现的功能,设计了如图5所示的操作界面,实现了驱动波形相关参数(频率和占空比)的编辑与更改、负载电流以及光源控制器工作情况的显示、系统工作状态的控制等。

图6给出了通过实验平台产生的驱动波形,其中波形的占空比以及电压幅度都是可以改变的,进而得到形态各异的驱动波形。

本文提出了一种数字微镜驱动波形实验平台的设计。该系统将ARM微处理器与FPGA相结合,充分利用两者的优点,并通过电压转换器对电平进行变换。最终实现了一个波形准确可变、界面友好便捷、适用广泛的数字微镜驱动波形实验平台,为数字微镜驱动的开发提供了很好的实验平台。

参考文献

[1]朱毖微,梁志毅,乔永征.基于FPGA的DMD驱动控制电路的研究设计[J].计算机测量与控制,2010(3):547-550.

[2]DOUGLASS M R.DMD reliability:a MEMS success story[C].Proceedings of SPIE,2003.

[3]邹静娴,吴荣治.数字微镜器件(DMD)[J].液晶与显示,2003,18(6):445-448.

[4]胡剑,李刚炎.基于MEMS的光开关技术研究[J].半导体技术,2007,32(4):332-334.

ARM平台 篇8

视频图像信息应用于很多领域, 去除视频图像中的冗余信息仅保留视频图像中的有用信息在实际运用中意义重大, 比如监控系统、可视电话等;本文是基于快速DCT变换实现视频压缩的。

一般来说, 嵌入式系统资源都很有限, 通常的flash只有32M, 无法存储大容量的视频图像信息, 即使外接扩充介质 (SD卡、U盘等) 依然无法弥补传输时的带宽限制。通过嵌入式系统开发课程的学习, 了解到在ARM平台上采集的视频, 通过压缩后便于在互联网上传输、保存。参加到大学生创新性实验计划项目中, 通过相关的开发与研究, 可以熟练地掌握嵌入式系统下视频压缩软件的开发流程, 以及对其中涉及到的相关技术有较为深入的理解。

二、YUV、RGB视频格式

由于目前主流的视频文件格式都是经过压缩的, 所以本项目选择的压缩视频图像格式是:YUV444、YUV2、UYVY、YUV420、RGB24;以下是视频流的格式与预处理分析:

三、视频图像灰度化处理

1、提取灰度值的原理:

视频流灰度值的提取完全是依赖于视频流自身的特性来实现的。对于彩色视频流无论是RGB24还是YUV其帧与帧之间的R、G、B值或Y、U、V值都是相互叠加存储的, 有的甚至是像素点与像素点之间的信息值叠加, 要提取视频图像的内容 (即Y值) 要从视频流的原格式着手;比如RGB24。

RGB24是按照 (B, G, R) 顺序存储的, 再根据公式:Y=0.299R+0.587G+0.114B求得Y值, 而YUV格式会更简单只要舍弃UV色度信息即可。

2、提取灰度值的基本步骤:

打开输入、输出视频文件→视频类型判断→读取视频信息每帧获取 (依据宽高、视频格式) →YUV (或RGB) 提取 (或转换) Y值→处理后的图像按帧存储→关闭输入、输出视频文件。

3、视频灰度化压缩效率分析:

以丢失彩色区的信息达到的压缩比并不高, 压缩比值在2:3~1:4之间, 而且压缩后的视频大小受到原视频格式的限制, 视频图像的宽 (width) 高 (height) 不仅决定了原视频的大小也决定了压缩后的视频大小, 压缩方法伸缩性、灵活性都很小。这种简单的视频图像压缩处理对于嵌入式系统来说意义不是很大, 要设计一个压缩率更高的压缩算法实现视频高效率的压缩。

四、Dct变换压缩

DCT其实质是不能压缩视频图像, 但是经过DCT变换和相关处理之后就可实现视频图像的高效率压缩。

1、DCT详解:

DCT是一种实数域变换, 其变换核为余弦函数, 计算速度快[3]。DCT除了具有一般的正交变换性质外, 它的变换阵的基向量能很好地描述图像信号的相关特征。因此, 图像信号的变换中, DCT变换被认为是一种准最佳变换。DCT变换在图像压缩中有很多应用, 它是JPEG、MPEG等数据压缩标准的重要数学基础。在JPEG压缩算法中, 先将输入图像划分为8×8或16×16的图像块, 对每个图像块作DCT变换, 然后舍弃高频的系数, 并对余下的系数进行量化以进一步减少数据量;最后使用无失真编码来完成压缩任务。解压缩时首先对每个图像块做DCT反变换, 然后将图像拼接成一副完整的图像。归结为:

a.正向离散余弦变换 (DCT) ;

b.量化 (quantization) ;

c.Z字形编码 (Zigzag scan) ;

d.使用差分脉冲编码调制 (differential pulse code modulation, DPCM) 对直流系数进行编码;

e.使用行程长度编码 (run-length encoding, RLE) 对交流系数进行编码;

f.熵编码 (entropy coding) ;

g.组成位数据流[4]。

出于对嵌入式ARM机性能的考虑, 本项目对原压缩过程进行了简化处理。具体步骤如下:

a.分块;

b.采用快速dct变换;

c.量化;

d.Z形扫描;

e.边界处理;

f.输出保存。

2、dct变换压缩的实现:

2.1 Dct变换压缩流程:

2.2分块

如何将视频数据分成8*8的矩阵块, 由于视频流的存储顺序是逐行的而分块的话要跨越8行。处理方法:每取一块重新定位到文件头, 通过fseek定位到 (count*width*height+i*width*Len+j*Len) +4每一块的块首位置;之后各行取块的对应行。

2.3 DCT变换

例如有一个8x8的矩阵数据如图4-2:

将该矩阵dct8x8 () 函数处理后如图4-3:

显然由上图可知, 此时能量已集中到了左上角。

2.4量化

通过调用函数demux () 除以一个量化矩阵、并调用函数dtochar () 将double型转换成char型,

这张表是根据心理时间阀制作的, 对8bit的亮度的图像处理效果不错[5], 量化表是控制视频图像压缩比的关键。这部分除去了一些高频量, 损失了很高的细节。量化后见图4-4:

由图4-4可见, 经过量化操作后, 能量更加集中了。

2.5 Z行扫描

量化处理的数据都是线性存放的, 要将二维转换成一维, 按表4-2整理64个char型数据:

2.6边界处理

将z形扫描后的一维char数组全为0的第一个0值置为EOB, lencut () 函数返回边界处理后非0值的个数。边界处理后见矩阵图4-5

这样处理后加上边界值EOB, 仅7个非0值。2.7写入输出文件

以上处理后的数据写入输出文件包括EOB, 其后为0的数据都舍弃。为了使其在解压播放的过程中更简便, 本软件在信息保存上也做了相应的处理, 自定义了文件头信息:

视频宽 (2B) :width

视频高 (2B) :height

存储结构如图4-5:

3、视频dct转换压缩效率分析:

经dct变换压缩后视频, 压缩比可以到1:10, 但是效果与仅灰度化处理相差无几, 对于获知视频的具体内容没有影响。对比效果如图4-6

五、结束语

本设计是基于XScale270平台, 采用嵌入式Linux操作系统 (2..4.18内核) , 使用QT软件进行程序开发。作为大学生创新性实验项目, 通过设计并实现一个相对完整的视频图像压缩系统, 在学到许多实际技能的同时, 也意识到自身理论的不足。例如, 要实现更高的压缩比, 如何改进算法?要减少压缩所花的时间, 如何优化代码等等。

摘要:现在视频监控系统被应用到很多领域, 目前视频监控中传输的都是视频流, 而对于大多数的安防系统来说, 它所需要了解的并不是具体的图像, 而是图像所包含的内容信息。将监控摄像采集到的视频信息压缩成利于传输的更小文件。本文介绍的方案, 是在PAX27X的ARM平台上, 结合了视频流存储特点与DCT变换在信息压缩领域的运用技术, 设计实现了一个基于嵌入式Linux系统的消除帧内冗余的单色视频压缩软件。

关键词:视频,嵌入式系统,DCT,单色

参考文献

[1]谢凤英, 赵丹培.Visual C++数字图像处理[M].北京:电子工业出版社, 2009

[2]黄艺, 解读色彩学上常用颜色空间的不同表示[EB/OL].http://oabbs.zol.com.cn/1/27_34.html, 2010.2.9

[3]唐俊.DCT在彩色图像有损RLE压缩中的应用研究[EB/OL].http://se.csai.cn/Monograph/200801071154561021.htm

[4]陶胜.JPEG图像文件格式分析及显示[J].电脑编辑维护手册, 2001 (7)

ARM平台 篇9

关键词:ARM嵌入式平台,WinCE操作系统,TQ2440开发板,系统移植

1 ARM及开发板硬件平台

ARM是对一类RISC微处理器的通称。目前,ARM微处理器已遍及工业控制、消费类电子产品、通信系统、网络系统及无线系统等各类电子市场。S3C2440A,是一种低价格、低功耗、高性能小型ARM微控制器,其杰出的特点是CPU为一个16/32位ARM920T的RISC处理器。采用S3C2440A作为中央处理器的开发板很多,该文采用天嵌科技公司生产的TQ2440开发板为硬件平台,其主频达到400 Hz外部存储器为64 MB,带有2个5线异步串行口、2个USB1.1接口和2个网口(10 M,100 M各一),为下载烧录操作系统提供了便利。

2 WinCE实时嵌入式操作系统[2]

Windows Embedded CE是一个硬实时操作系统,它提供可靠的内核服务来支持低延时、确定性、实时性的嵌入式系统设计。CE具有一个实时系统的以下特征:可抢占的多线程;优先线程调度;优先级反向预防;可预测的线程同步。

实时系统分为硬实时系统和软实时系统。软实时系统可以超过其限定的时间响应,允许偶尔超过时间界限,但仍可以保证系统性能处于合理的、可接受的水平。硬实时系统则不会超过任何限定的时间响应。当硬实时系统不满足其限定的响应时间时,可能会导致严重的系统故障。

3 Windows环境设置

ARM和WinCE操作系统的结合,提供了统一的、可裁减的、具有伸缩性的低功耗高性能嵌入式系统平台[3]。要把WinCE移植到ARM中,要先对Windows进行相关设置。

3.1 超级终端的设置

在对开发板进行开发时,需要知道开发板的实时状态,这就需要一个对等的通讯,TQ2440开发板与PC串口的交互需要一个终端程序,该文使用的是Windows XP自带的超级终端,如图1所示。

当在以下的操作中,出现:“默认Telnet程序”和“位置信息”对话框时,可根据实际需要进行适当的设置。在“连接描述”中,输入建立的超级终端的名字,当需要选择与开发板连接的接口时,选择COM1(要与后继设置保持一致)物理端口。对出现的“COM1属性”对话框进行如图2所示设置。

在文件中保存超级终端的设置,到此开发板与PC可以通过超级终端进行信息交换。

3.2 DNW软件的设置

DNW跟对等交互的超级终端不同,它是单向的,只能由PC把文件传输给开发板,采用USB协议。双击DNW软件打开对话框界面,点击“Configuration”菜单中的“Options”选项,设置“URAT/USB Options”如图3所示:

通过这样的设置,当计算机往开发板下载文件时,PC把准备写入串行设备的数据先放在UART(Universal Asynchronous Receiver/Transmitter)的临时寄存器中,再通过FIFO(First Input First Output)最终写入到开发板中。

3.3 安装GIVEIO驱动

当要使用Jtag软件SJF2440.exe烧写u-boot时,这需要安装驱动把并口虚拟成IO口,考虑到健壮性,最好使用SPP模式或者是EPP模式。

1)复制文件“giveio.sys”到目录“WINDOWsystem32drivers”下;

2)从控制面板的“添加硬件”进入安装引导;

3)在硬件列表中找到“端口(COM和LPT)”选项,然后继续;

4)在“添加硬件向导”对话框中,“厂商”一栏中,选择“标准端口类型”,

“型号”选择“Communications Port”;

5)找到“GIVEIO”目录,打开文件“giveio.inf”;

6)回到驱动设备安装界面,选择设备“giveio”;

7)按照对话框“添加硬件向导”中的提示,完成驱动的安装。

3.4 安装USB下载驱动

在PC与TQ2440进行USB通信时,需要安装其驱动,安装步骤如下:

1)打开超级终端,接上开发板的串口线和电源线,按住PC键盘的空格键,打开开发板电源,在超级终端上,会进入u-boot的控制台下,如图4所示:

插上USB电缆,PC会自动弹出“找到新的硬件向导”,选择“是,仅这一次(Y)”,然后继续。

2)执行操作:“从列表或指定位置安装(高级)”到“在这些位置上搜索最佳驱动程序”,在浏览文件夹中找到“USB驱动”,然后安装向导开始搜索硬件设备,在出现的对话框中选择“SEC SOC Test Board”选项。

3)在浏览选项中找到“secbulk.sys”文件,双击,开始安装USB下载驱动。检验是否安装成功的标志是打开DNW软件,看其状体,若在标题栏中出现:[USB:OK],则说明USB下载驱动安装成功.

4 Win CE内核的制定

Platform Builder是微软公司发布的一款用于定制Windows CE操作系统的集成开发环境。开发人员可以使用这个集成开发环境完成嵌入式操作系统的定制、编译和调试,并且还可以在这个集成开发环境中进行应用软件、驱动程序的开发等。

4.1 Platform Build 5.0的设置和安装

1)首先安装Framework net 1.0,找到安装程序dotnetfx.exe,在“Microsoft Windows CE 5.0–Setup Type”对话框中选择“Custom(Tools and OS)”,让CPU支持产生的镜像文件。软件的安装尽量放在缺省目录下。

2)对于TQ2440系列开发板,要注意“ARMV4I”的设置,如图5所示:

3)按照对话框的提示,选择“install”和“next”等操作,完成PB的安装。

4.2 编译需要的工程文件

1)在设置好“Workspace Name And Location”后,进入“Board Support Package”配置单中,选择“SANSUNG SMDK2440:ARMV4I”选项;

2)在“Design Template”配置选项中,选择“Mobile Handheld”;

3)在“Applications&Media”配置单中,选择需要的配置,如图6所示:同时,在“Networking&Communications”中,选择缺省设置;

4)工程建立完成后,选择菜单项“Platform”中的“Settings”,在出现的对话框“Platform Settings”中,选择“Locale”,选择对中文的支持,在“Build Options”选项中,不选择“Enable CE Target Control Support”和“Enable KITL”,其他选项选择缺省值,如图7所示:

5)加入MFC组件,依次打开“Catalog→Core OS→Windows CE devices→

Applications and Services Development”,然后选择“Add to Platform”;

6)加入USB键盘鼠标支持特性,依次打开“Catalog→Core OS→Windows CE devices→Core OS Service→USB Host Support→USB Human Input Device(HID)Class Driver”,选择“Add to Platform”,还要选择子项“USB HID Keyboard and Mouse”,同样要执行操作“Add to Platform”;

7)添加文件系统的支持,为了保存注册表,需添加上文件系统对HIVE的支持,对此,首先要添加的是对FAT文件系统的支持,再添加“Storage Manager Control Panel Applet”,然后添加对HIVE的支持,如图8所示:

8)添加对ROM和RAM的支持,如图9所示:

9)修改网络信息,包括IP地址、DNS和网关地址,修改“platform.reg”注册表的值;还要添加输入法和字库等支持,最后进行编译。

10)编译完成后,生成“NK.bin”和“NK.nb0”两个wince镜像内核文件,它位于"..RelDirsmdk2440_ARMV4I_Release"目录下。最后把压缩的NK.bin烧录到开发板中,完成wince的移植。

5 结束语

WinCE系统移植是嵌入式系统开发的重要环节,是进行后续功能开发的软件平台,其移植过程是十分复杂的,需要对WinCE系统本身的结构和文件之间的调用非常清楚,还要求对所依托的硬件足够熟悉,该文在TQ2440开发板上对操作系统内核的移植进行分析论述最终成功进行移植为下一步的系统开发建立基础[4]。

参考文献

[1]陈连坤.嵌入式系统的设计与开发[M].北京:清华大学出版社,2005.

[2]Samuel Phung,张冬松,陈芳园.Windows CE6.0嵌入式高级编程[M].北京:清华大学出版社,2009.

[3]杨宁,王立德,王苏敬,丁国君.基于ARM&WinCE的车载智能显示终端的开发[J].机车电传动,2010(1).

上一篇:热成像仪下一篇:循环经济管理会计研究