嵌入式linux下单片机的智控系统设计

葛毅, 龚辉

(1.南瑞集团有限公司(国网电力科学研究院有限公司),江苏 南京 211106;
2.国电南瑞科技股份有限公司,江苏 南京 211106;
3.国电南瑞南京控制系统有限公司,江苏 南京 211106)

嵌入式Linux在硬件开发方面应用性较强,内核小且可适用于开发源代码,在软件方面嵌入式Linux能够实现系统移植,驱动开发芯片。在软件道路中,嵌入式Linux的驱动系统较为稳定,并且嵌入式Linux不仅提供了包括千兆的以太网络,而且能够进行RISC、CISC和64位处理器的运行;
作为电子技术行业的技术支撑,单片机的发展在一定程度上代表了电子技术行业未来的发展前景,它可以通过智能电子设备收集的数据、负载的状态来调节电压和电流的输出,能够控制能耗,使得设备更加节能,单片机在人机交互环节能够通过逻辑处理分析、智能处理等环节提高硬件响应时间;
如今单片机也较多地应用于医疗行业中,如血压和心率测量手环、孕妇胎心监测手环等,实时监测患者的身体特征数据,对就医者的健康状况及时处理。在智能家居领域、人工智能领域、自动驾驶领域以及更加先进高端的科技领域中,单片机都有着较大的适用范围和较为广阔的应用前景。

基于嵌入式Linux下单片机的智控系统设计应当按照功能目标来设计硬件电路,在硬件设计中需要满足系统的一系列要求,根据单片机以及扩展的外部设备芯片来进行软件设计,在单片机的选型以及芯片和模型的选择上是一个重要而且艰巨的任务,为了能够基于实际情况和场合要求来进行电路设计、数据采集等,需要设计人员在设计硬件时协调考虑系统精度、系统功能、智能化控制以及芯片掌握等问题,在之后的编写程序中不断地改进完善,吸取之前的实践经验进行系统功能的创新拓展,最终实现真正的智能化和自动化。

1.1 设计目标

嵌入式Linux下的单片机,指的是它把嵌入式Linux系统称为主系统。Linux是一个控制目标应用系统行为的逻辑处理系统,它在物理上依赖于单片机,嵌入式Linux安装在单片机上,为单片机的运行专用系统。第四代嵌入式系统是伴随着移动数据网络和物联网的兴起而出现的,实现了信息家电、工业控制组网,构成了嵌入式系统和嵌入设备的结合。

智控系统逻辑较为复杂,需要操作系统软件支持,嵌入式Linux下的单片机专业性较强,低功耗低电压,提供了灵活、高效的解决方案,根据当前的智控技术、嵌入式技术以及以及运动控制技术,结合实际情况,本文研究的嵌入式Linux下单片机的智控系统设计目标如下:

首先,该嵌入式Linux单片机智控装置通过摄像机的数据采集来传输到计算机的监控中心,在视频采集前端采用专用的视频压缩采集卡,采用视频压缩技术使得系统具有可重用性和可移植性,能够获取现场实时图像视频数据,确保图像的流畅和清晰度,能够自主调整视野角度;

其次,在通信方式下采用无线通信,具备一定程度的可靠传输距离,用户操作简单方便,支持PC和Android控制终端;

最后,可以实现模块化设计,保证系统的通用灵活和拓展性,有利于后期的维护和升级。

1.2 硬件方案

通过梳理大量的文献和参考目前智控研究领域中较为先进的硬件方案,本文将嵌入式Linux下的硬件方案设置如下:

首先,通用微处理器采用AVR单片机,AVR单片机开发较为简单且价格低廉,内存资源较小,运行中不带操作系统的裸机程序。

其次,确定硬件方案后,我们选择硬件原理图和电路板设计,焊接硬件电路调试元件,并反馈调试过程中的问题,改进设计,重复上述设计过程来建设硬件环境。

最后,在软件开发阶段,必须为每个处理器创建安装交叉编译工具包,建立适合的交叉编译开发环境,配置主机服务器,然后将其移植到目标内核开发平台,并创建一个根文件系统。在硬件环境中运行最小的嵌入式Linux系统,而后裁剪和优化内核配置,使硬件设备正常工作。

2.1 嵌入式linux的单片机硬件电路设计

单片机的引荐电路设计是智控机械的基础,系统内编程和应用内编程无需将微控制器从实际最终产品中移除,以用作STC12C5620AD的核心来支持用户系统程序和数据。设备可以编写非应用程序。STC12C5620AD有9个源、4个优先级中断结构、10位ADC(10万次/秒)、片内晶振、MAX810专用复位电路、4通道PCA和PWM、SPI、一次性启用看门狗定时器等。

2.2 单片机控制器硬件电路设计

这种智能控制机制的主要功能是“连接”,在单片机控制器硬件电路中通过无线网卡和远程控制终端建立网络连接,并接受终端发送的控制命令。以ARM为核心处理器,运行嵌入式Linux操作系统的方案来进行图像采集、压缩和传输,在指令集的处理器上选择“蜂鸟”处理器,“蜂鸟”和S5PC110的功能一样,适用于智能手机,运行主频较大,主频可达到1GHz,64/32位内部总线结构,具备强大的硬件编解码功能,内建高性能PowerVR SGX540 3D图形引擎和2D图形引擎,同时还可以支持OpenG2.0等PC级别显示技术来进行多标准、全高清的视频编码,实现流畅播放和录制1080P的视频文件;
内部还能够支持MPEG-1/2/4格式的视频编解码,因此支持模拟,具备JPEG硬件编码器可以实现视频数据的硬件编码。

2.2.1 单片机主控制器

单片机选择8051内核8位微控制器STC12C5A60S2,它内部含有集成2路PWM电路,适合电机控制、数据采集等应用,开发较为简单,RAM数据存储器容量为1280字节,晶振频率为22,1184mHz,其主控制器最小系统以及外设连接如图1所示。

图1 主控制器最小系统

2.2.2 直流电机驱动电路

单片机普遍IO口输出电流不能够满足四个直流电机的正常工作,难以控制电机转速,要实现对电机速度的控制需要调节脉宽,使用PWM方式驱动较为简单,功率损耗较低、效率较高、响应速度较快、调速范围较广,电路中加入蓄流二极管保障芯片安全。

2.2.3 蜂鸣器和LED驱动

根据本智控机械的需要,在本设计中加入了名企电路,在机械异常状态时进行蜂鸣器报警,提醒用户注意;
考虑到光线较暗的地方中保障视频拍摄的质量,所以在本设计中增加1.5WLED照明灯,采用DC-DC降压恒流驱动芯片XL4001来控制电源开关运行。

2.3 ARM服务器核心硬件电路设计

硬件电路主要使用高性能Cortex-A8核心板Smart210,Smart210核心板采用2.0mm间距的双排针,尺寸为74*55mm。共引出208Pin引脚、Smart210核心板集成网卡和声卡芯片,核心板硬件资源为512Mb DDR2 RAM@200Mhz内存,32Bit数据总线,FLASH存储标配1GB SLC NAND Flash,核心板采用5V供电,两路USB HOST接口采用三路串口,人机交互采用LCD,方便系统开发和调试,在主机端和下游USB设备传输连接中采用48PIN LQFP,在外接器件较少的设备中采用USB HUB功能,两根差分的数据线DP*和DM*。

2.4 摄像头选取

采用UVC普通USB摄像头,集成了镜头、图像处理器、模数转换电路、DSP处理器以及USB控制器的选择,在CAMERA接口的COMS摄像头中不经过DSP数据处理,直接进行输出并行数据,在图像传感器方面采用要求较高、专用的摄像设备,COMS在功耗、成本方面具有巨大的优势,本设计采用的摄像头支持USB1.1、USB2.0协议,最大分辨率为640*480,具备30万像素。

2.5 USB无线网卡选型

采用RT3070无线网卡,通过USB接口来传输数据,由Mac控制器、基带处理器、功率放大器以及调制解调器等组成,该无线网卡支持64/128位WEP过渡版加密认证,支持工作在STA模式和AP模式,支持所有操作系统。通过改装外接SMA 2DBI天线,信号强度大大提高。最重要的是,Linux内核已经对RT3070芯片的无线网卡有很好的驱动支持,只需要对内核进行相应的配置,再通过相应软件设置,使该网卡工作于AP模式或STA模式,即可构建起一个本地局域网络。

2.6 LCD以及触摸屏

在LCD驱动器中选择和玻璃基板集成在一起,LCD控制器集成在微处理器中,“蜂鸟”处理器中自带LCD控制器,能够简化TTL接口,实现低压查分LVDS接口和RGB接口之间的传输,在本设计中采用A70i 7寸液晶屏,型号为AT070TN83(数字屏),分辨率为800*480,颜色RGB为6-6-6,方便拆卸和固定。

3.1 嵌入式Linux系统构建

典型的Linux系统从第一个版本到生成支持多用户、基于网络编程多任务、多线程的操作系统,嵌入式Linux系统在嵌入式处理器的迁移中发挥了重要作用。Linux系统的内核源代码已经开发完成,内核兼容POSIX可移植操作系统。接口标准适用于本设计的ARM架构,在Linux系统内部,针对视频文件能够实现设备和程序的相辅相成,Linux系统自动引导程序引导安装系统内核、文件系统、程序。

3.2 Linux系统启动引导程序

本设计在启动过程中使用了U-BOOT。UBOOT支持NFS网络文件系统,具有良好的系统接口帮助功能。U-BOOT可以通过设置相关参数来控制操作系统的内核,以完成不同开发阶段的操作系统调试。U-BOOT可以检测上述的自动电源检测器、SDRAM、FLASH。U-BOOT可以实现上述自动上电检测、SDRAM、FLASH检测、SDRAM硬件故障检测。CR232检查内核可以提供检查RAMDISK文件系统中损坏图像文件的能力。引导器允许将嵌入式系统内核加载到FLASH存储器中,从而使嵌入式系统和文件系统能够连续加载和卸载,并使串行终端能够监控目标机。

3.3 Linux 系统内核

Linux内核是整个系统的重要组成部分。Linux内核的组件包括处理器内核、内存管理、进程管理,在Linux内核的每一层又细分为子系统。Linux系统版本支持大多数现有处理器。输入子系统提供对硬件设备上各个寄存器的读写访问,提供驱动程序对系统识别的标准输入事件的相应转换,为开发提供相应的标准编程接口。驱动层在inputdev数据结构的实现中,当有事件产生的时候驱动层能够自动提交相应的事件和对应的键值以及坐标;
典型的Linux系统输入子系统和TTY子系统支持各种常见输入设备的系统级管理软件,可以实现进程管理、进程间通信和内存管理。本设计的驱动程序开发使用现代Linux内核数据结构和接口进行编程。

3.4 根文件系统

基于linux系统内核来对各种文件在系统的存放和各目录的组织结构进行抽象为统一的文件形式,在Linux内核之后要安装的第一个文件系统是基于根文件系统的,文件系统镜像文件由上述步骤创建。为了避免各个linux发行版本不同,所以在建立文件系统各级目录上首先建立根目录,建立文件系统其它目录命令为:mkdir bin/sbin/etc/dev/root/home/lib/mnt/proc/sys/usr/mnt/tmp/;
之后选择编译安装busybox,建立动态链接库,将常用函数封装成动态库形式;
其次,构件设备dev目录、etc目录,配置U-BOOT来烧入到NandFlash中。

本设计中使用的桌面版和嵌入式linux设施版本Qt/内置,桌面版Qt底层图像技术是基于X窗口系统顶端,管理版Qt根据系统资源要求,减少了系统内存消耗,加快了显示速度;
同时,外部输入事件被抽象为鼠标和键盘输入事件,统一了系统输入接口。桌面和嵌入式版本Qt被称为相同的API程式开发,不需要担心具体的底层问题。程序迁移是非常方便的,基于Qt来实现Pc控制终端软件设计,网络通信模块应当针对TCP协议,建立起客户端和服务器端的网络通信连接,在视频显示模块应该移植Open CV,调用函数 cv Create Video Writer(filenme,CV_FOURCC("M","J","P","G"),20,cvSize(640,480),1)初始化一个MJPG格式的视频文件写入器,基于Android进行开发环境的搭建,之后进行通信协议的搭建。

本文设计并实现了一个基于嵌入式Linux的微控制器的智能机械装置,详细描述了硬件和软件的实现过程,主要包括嵌入式Linux硬件电路设计、调试、U-BOOT移植、Linux内核移植和切割、根文件系统创建等,分析了应用程序每一部分的设计。虽然本设计基本完成了嵌入式linux单片机的基本控制,对于视频数据和传感器数据的采集都进行了相关介绍和分析,但由于能力有限,本文在机械的多传感器信息数据融合上还需要综合判断各种因素,从而建立起来相对完整的数学模型。

猜你喜欢 网卡内核嵌入式 基于IMX6ULL的嵌入式根文件系统构建汽车实用技术(2022年13期)2022-07-19人民情怀:柳青为文为人的内核(评论)作品(2021年9期)2021-09-22Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机家庭影院技术(2021年7期)2021-08-14活化非遗文化 承启设计内核现代装饰(2021年1期)2021-03-29联网全靠它 认识笔记本的无线网卡电脑爱好者(2021年4期)2021-02-27微软发布新Edge浏览器预览版下载换装Chrome内核中国计算机报(2019年12期)2019-06-21挑战Killer网卡Realtek网游专用Dragon网卡电脑爱好者(2015年15期)2015-09-10高校图书馆开展嵌入式信息素质教育的思考图书馆界(2013年5期)2013-03-11USB故障又一原因网络与信息(2009年7期)2009-07-11如何屏蔽集成声卡显卡和网卡网络与信息(2009年8期)2009-05-10

推荐访问:单片机 嵌入式 设计