基于嵌入式开发的烟雾监测.docx
《基于嵌入式开发的烟雾监测.docx》由会员分享,可在线阅读,更多相关《基于嵌入式开发的烟雾监测.docx(18页珍藏版)》请在冰豆网上搜索。
基于嵌入式开发的烟雾监测
湖南文理学院芙蓉学院
课程设计报告
课程名称:
嵌入式系统课程设计
专业班级:
自动化1101(7)
学生姓名:
陈鹏
指导教师:
王南兰
完成时间:
2014年月日
报告成绩:
评阅意见:
评阅教师日期
湖南文理学院制
引言
课程设计目的
课程设计题目描述和要求
课程设计报告内容
实验原理
S3c2410的介绍
硬件系统的总体设计方案
核心板设计
电源管理模块
扩展板的设计
数据采集模块的设计方案
嵌入式linux操作系统的移植
驱动程序及应用程序的设计
调试过程及总结
参考文献
基于嵌入式技术烟气检测监控系统的设计
1.引言
目前,工业现代化飞速发展,同时也给人类健康、生态环境带来了重大威胁,煤矿、电站、水泥厂等,每天都排放大量烟气。
现在首要解决的问题就是分析烟气的危害程度和对不同烟气采取不同的处理手段。
传统单片机总线宽度一般为4位、8位或16位,处理速度有限,
一般在几个MIPS,进行一些复杂的应用很困难,运行操作系统就更难。
而ARM微处理器不但价格便宜而且性能和集成度较传统的单片机高得多,为单芯片解决方案提供了非常方便的平台,在很多场合用一个芯片就包容了你所需要的全部资源,这些优势都是本次研发选择的理由所在。
该烟气检测监控系统主要用到两款SUMSANG嵌入式芯片,一款是基于ARM7系列的S3C44B0x处理器,主要任务是数据采集;另一款选用的是基于ARM9系列的S3C2410处理器,用于检测、监控烟气的采样,并对采集到的数据进行分析。
系统利用了当今高速发展的嵌入式技术,移植了广泛使用的嵌入式Linux操作系统,来解决目前大家广泛关注的烟气污染问题。
2.课程设计目的
熟悉S3C2410为硬件核心,嵌入式Linux作为操作系统的控制转换系统。
掌握EEPROM器件的读/写方法。
掌握数据采集模块的使用方法。
熟悉远程服务器对传输数据的分析方法。
3.课程设计题目描述和要求
本次开发的基于SUMSANG2410的烟气监控系统正是应实际工程需要,用于监测、控制水泥厂烟气采样器,并对采集到的数据进行分析。
通过详细的调研工作,分析了当前烟气监测系统的利弊,利用发展快速的32位微处理器以及嵌入式Linux操作系统,结合气体霜冻除水方法,自主开发设计性能较高、适用范围较广的烟气监控系统。
利用当今发展快速的嵌入式技术,移植广泛使用的嵌入式Linux操作系统。
设计的要求如下:
以嵌入式技术为核心的烟气监测监控系统;
完成系统的硬件组成设计,监测监控烟气排放是否符合烟气污染排放标准,实现在工业级以太网中的互联。
实现系统软件的总体功能和功能划分设计总体方案。
4.课程设计报告内容
4.1实验原理
●ARM处理器
ARM(AdvancedRISCMachines)作为一家芯片设计公司,是近年来在嵌入式系统中非常有影响的微处理器设计商,它主要是将芯片设计技术的授权出售给世界上众多著名的半导体、软件和OEM厂商,并且为他们提供ARM相关技术及服务。
ARMCPU是RISC架构的CPU,其设计主要适合于要求体积小、功耗低和功能较强的处理能力等要求的嵌入式系统。
它的主要特点有:
●采用固定长的指令格式;
●使用单周期指令,便于流水线操作执行
●大量使用寄存器,数据处理指令只对寄存器操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率;所有的指令都可以跟前面的执行效果决定是否被执行,从而提高指令的执行效率;
●可用加甸存储指令批量传输数据,以提高数据的传输效率;
●可在一条数据处理指令中同时完成逻辑处理和移位处理;
●在循环处理中使用地址的增减来提高运行效率。
ARM内核中有四个功能模块可供生产厂商根据不同的用户的不同要求来配置生产。
这四个模块分别用T.D.M和I来表示。
T:
表示Thumb,该内核可从16位指令集扩充到32位ARM指令集:
D:
表示Debug,该内核中放置了用于调试的结构,可以使CPU进入调试模式,从而可方便地通过JTAG进行断点设置、单步调试;M:
表示Multiplier,该内核内部带有8位乘法器;I:
表示EmbeddedICELogic,该内核可用于实现断点观测及变量观测。
ARM920T支持7种操作模式,可以由软件配置,分别如下:
●Usermode(usr):
7E常程序执行模式;
●FIQmode(fiq):
支持快速数据传送和通道处理;
●IRQmode(irq):
用于通用中断处理;
●Supervisormode(svc):
操作系统保护模式。
●Systemmode(sys):
运行特权模式操作系统任务;
●Abortmode(abt)数据或指令预取失效后进入的状态;
●Undefinedmode(und):
执行未定义的指令时进入的模式。
对这些操作模式的支持,使得ARM可以支持虚拟存储器机制,支持多种特权模式,从而可以运行多种主流的嵌入式操作系统。
A所示。
ARM微处理器中共定义了37个编程可见寄存器,每个寄存器的长度均为32位。
根据不同的用途,可将其划分为以下几类:
●30个通用寄存器:
在任意一种处理器模式下,只有15个通用寄存器可以使用,编号分别为r0,...,r14.其中,r13一般作为堆栈指针寄存器(SP:
StackPointer)。
该寄存器由ARM编译器自动使用。
r14一般作为链接寄存器(LR:
LinkRegister)。
当系统中发生子程序调用时,用r14来记录返回地址。
如果返回地址己经保存在堆栈中,则该寄存器也可以用于其它用途。
●程序指针(PC:
ProgramCounter):
PC即为r15,用于记录程序当前的运行地址。
ARM处理器每执行一条指令,都会把PC增加4字节(饰umb模式为两个字节)。
此外,相应的分支指令(如BL等)也会改变PC的值。
●当前处理器状态寄存器(CPSR:
CurentProgramStatusResister)各种模式公用该寄存器。
●状态备份寄存器(SPSR:
SavedProgramStatusResister)SPSR寄存器主要是在处理器异常发生时,用来保存CPSR(CurentProgramStatusResister)。
4.2S3C2410的介绍
本系统开发前进行了大量的调研工作,基于芯片的性能、功耗、专业水平等多方面因素,最终选择了以ARM920T为核心的SAMSUNGS3C2410,作为整个控制系统的硬件核心部分。
S3C2410是SAMSUNG公司针对工业级和民用级等多种应用场合设计的一款性价比较高的16/32位RISC嵌入式微处理器,其内部除了包含ARM公司设计的16/32位ARM920TRISC处理内核外,S3C2410还包括以下比较重要的功能模块isi
●内带有MMU(MemoryManageUnit)内存管理单元,故S3C2410支持WindowsCE、嵌入式Linux和EPOC32等多种嵌入式操作系统;
●16KB的指令Cache和16KB的数据Cache;
●完全可编程控制的外部总线接口(ExternalBusInterface),其存储空间可分为8个128MBank,每个存储区都支持8/16/32字宽进行读写操作,最大地址访问空间可达1G;
●55个中win;
●3个异步串行口,其中一个可设置成红外口;
●SPI串行口;
●可编程看门狗定时器;
●LCD控制器,支持STN和TFr两种LCD显示器;
●5个16位定时I计算器;
●8路10位的ADC,支持触摸屏;
●2个USB主设备口,1个USB从设备;
●(12)117位通用I/O口,24个外部中断源。
同时S3C2410也提供了较好的电气特性,其主要指标如下:
●工业级体系列正常工作温度范围):
-400C-700C,民用级(X系列)正常工作温度范围:
O-700℃;
●内核供电电压1.8V,I/O:
3.3V;
●正常情况下,最高工作频率可达203MHz;四种工作模式:
正常模式、低能模式、休眠模式和停止模式。
4.3硬件系统的总体设计方案
转换系统是整个烟气监控系统的核心部分,主要功能:
一是控制去除烟气中的水气,二是通过串口与数据采集仪进行通讯,三是通过网络将通过串口得到的数据发送给远程服务器。
硬件系统框图如图1所示。
硬件平台的主要配置如下:
●CPU:
SAMSUNGS3C2410(ARM920T内核);
●FlashMemory:
64MbyteNandFlash;
●SDRAM:
64Mbyte(32MbyteX2);
●系统时钟:
使用外部12MHz晶体,由CPU内部DLL倍频至203MHz;
●LCD:
6.4寸TFT640X480;
●IOM以太网接口:
CirrusLogicCS8900A;
●3个基于标准RS232协议的COM接口,其中COM3用作扩展蓝牙模块;
●1个SPI接口;
●USB接口:
一个主设备接口,一个从设备接口:
●LED指示灯;
整个系统分为核心板和扩展板两部分。
核心板集成了处理器和存储器以及电源模块等所必需的支持元件,组成一个最小的ARM硬件核心系统,采用了六层电路板设计方案。
核心板可作为以后不同产品设计的基础。
扩展板集成了所需要的大部分接口部件,如RJ-45网络接口,USB主/从设备接口,串口,CF卡接口,系统编程接口等接口。
核心板和扩展板之间采用标准SIMM插槽连接,外设和扩展板之间采用相应的外设接口连接。
4.4核心板的设计
核心板是整个系统的核心部分,主要包括:
32位处理器S3C2410、存储器管理模块,以及所需要的辅助部件,如晶体振荡器,电源模块等等.
●SDRAM存储器模块
SDRAM(SynchronousDRAM)即同步DRAM它最大的特色就是可以与CPU的外部工作时钟同步,和系统中的CPU、主板使用相同的工作时钟,如果CPU的外部工作时钟是100MHz,则送至内存上的频率也是100MHZ。
这样将去掉时间上的延迟,可提高内存存取的效率。
SDRAM的工作原理如下:
SDRAM是以阵列单元来存储数据的,因此在存取时必须提供一个行地址和一个列地址来确定所要访问的数据的位置。
第一步,地址总线上出现所要访问数据的列地址,同时作为列地址信号标志的RAS(RowAddressStrobe)号有效,将列地址打入SDRAM,SDRAM将整列的数据都准备好,等待着被访问;接着地址总线上出现所要访问数据的行地址,并通过行地址信号的CAS(ColumnAddressStrob目打入SDRAM,SDRAM从在这之前已选中的列中挑选出该行地址所对应的数据,并将该数据输出或输入到数据总线。
具体是输出还是输入操作是由WE信号决定的。
本系统的硬件平台采用的是两片Hynix公司的HY57V561620,采用2片构成16MX32bit的SDRAM模块,具体电路如图2所示。
●闪速存储器(Flash)模块
闪速存储器(FlashMemory)是一类非易失性存储器,即使在供电电源关闭后仍能保存片内信息;而诸如DRAM,SRAM这类易失性存储器,当关闭供电电源后,片内信息随即丢失。
FlashMemory集其它非易失性存储器的特点:
与EPROM相比教,闪速存储器具有明显的优势一系统电可擦除和可重复编程,而不需要特殊的高电压;与EEPROM相比较,闪速存储器具有成本低、密度大的特点。
其独特的性能使其广泛地运用于包括嵌入式系统在内的各个领域。
Flash电路如图3所示。
4.5电源管理模块
作为工业产品,电源系统的稳定性对本系统有至关重要的影响。
为了适应各种工作环境,设计两种供电方式,一种是通过配备的变压器将220V转换成5V,为整个协议转换系统供电,同时也给自带的4节5号的充电电池充电;另外一种是通过4节5号充电电池为整个系统供电。
在本系统硬件平台中,各个不同的部分对电压有不同的要求,需要5V和3.3V两种不同的电压。
综合考虑了性能和成本等问题,本系统采用了两级稳压电源的方案如图4所示。
辅助电路的介绍:
核心板上还有一些辅助电路,包括上拉电阻,滤波电容,以及供处理器使用的主时钟晶振,供外设适用的辅助时钟晶振电路等等。
它们一起构成了ARM的最小硬件系统板。
核心板工作在高速信号下,为了布线方便,减少干扰,采用了六层电路板设计,第二层为接地面,四层为电源面,其他各层为信号层。
本系统所设计的核心板比较小巧,通过标准芯SIMM插座与母板连接。
核心板是一个最小的ARM9硬件系统板,具有较好的通用性,可以作为不同产品开发设计的基础。
4.6扩展板的设计
扩展板主要有两方面的作用,一方面对核心板提供支持,如为核心板供电,提供外设到核心板的连接;另一方面为各种外设提供了接口,外设接口的体积比较大,使用中可能会有变化,设置在双层电路板设计的母板上比较合适。
系统的扩展板主要集成以下功能:
LCD显示器接口,触摸屏的接口,以太网接口,USB接口,串行接口,CF卡接口等。
●LCD显示器
S3C2410内部自带LCD控制器,支持4位、8位和16位格式的多种类型的彩色LCD.如STN,TFr等。
本系统考虑到实际的显示效果和成本,选用了PVI的6.4寸640*480的TFT_LCD。
因为S3C2410自带LCD控制器,所以扩展起来很方便:
①VDO-15:
16位数据线;
②VCLK:
LCD的时钟信号,用于把每一点的数据送入移位寄存器;
③VLine:
行信号,用于指示一行数据由移位寄存器到显示驱动芯片传输完毕,并使得行指针加1。
④VFrame:
帧信号,用于指示一帧图像的开始,同时把行指针置于显示屏的第一行。
在16位TFT方式下,就是垂直同步信号。
⑥LCD_VREN:
在16位TFr方式下,输出一允许信号。
用于指示数据信号在时钟信号的同步下,锁存到引脚。
●触摸屏
本系统通过在LCD显示器上安装触摸屏,当用户点击触摸屏时,系统可以得到点击的位置,将该位置的坐标换算到LCD的坐标就可以实现人机交互了。
本系统是通过S3C2410自带的触摸屏控制接口扩展了一个四线电阻式触摸屏。
通过给触摸屏加上偏置电压,当有点击操作时,使得触摸屏输出电压改变,通过S3C2410片内触摸屏控制器得到,并进而转换成LCD的位置坐标。
●网络接口
网络传输功能是本系统的重要组成部分,同时也是嵌入式系统的主要应用领域,本系统以CirusLogic公司的CS8900A芯片作为核心,设计并实现了以太网接口扩展模块。
CS8900A是一款性价比非常高的符合IEEE802.3标准的以太网控制器。
支持标准的ISA总线,内部集成有用于10BASE和10BASE5的以太网收发器。
同时内部集成有4KBRAM,具有完善的冲突检测和重传机制,对于传输帧而言,它提供了自动填充和添加CRC校验码的功能。
CS8900A提供三种数据传输模式:
①I/O方式:
输入瀚出端口方式,8/16位模式可选,节省地址空间;
②MEMORY方式:
存储器映射方式,16位模式,访问效率高;DMA方式:
最快捷的方式。
每次复位后,CS8900A默认工作于I/O模式。
在本系统中,CS8900A工作于MEMORY方式,占用nCS2所选定的地址空间的低4K。
将CS8900A的输出的中断信号连接到S3C2410的外部中断3,利用中断的方式,及时处理数据。
●串行接口
RS-232是PC机与通信工业中应用最广泛的一种全双工串行接口。
RS-232被定义为一种低速率串行通讯标准。
其传送距离最大为约15m,最高速率为20kbps,本次开发的系统是利用RS-232串口,对现有的数据采集单元进行扩展、操作的。
系统中S3C2410具有3个标准的UART,为了尽可能的扩展对外接口。
根据MAX3232芯片的功能,即每块MAX3232可以扩展2个独立的RS-232串口,故本系统通过2块MAX3232芯片扩展了3个RS-232串口,其中两个作为与数据采集单元连接的接口,另外一个作为蓝牙模块的接口。
4.7数据采集模块设计方案
数据采集模块的硬件开发平台采用的是PHILIPS公司的LPC2100系列的32位微处理器,LPC2100系列是世界上首款可以加密的ARM芯片。
本次设计选用的是LPC2114。
LPC2114是基于一个支持实时仿真和跟踪的16/32位ARMTCDMI-SCPU,并带有128/256K字节(KB)嵌入的高速Flash存储器。
128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。
对代码规模有严格控制的应用可使用16位Thumb模式,将代码规模降低超过30%,而性能的损失却很小。
由于LPC2114采用非常小的64脚封装、极低的功耗、多个32位定时器、4路10位ADC、PWM输出以及多达9个外部中断,这使它们特别适用于工业控制、医疗系统、访问控制和电子收款机(POS)等应用领域。
由于内置了宽范围的串行通信接口,它们也非常适合于通信网关、协议转换器、嵌入式软件调制解调器以及其它各种类型的应用。
后续的器件还将提供以太网、802.11以及USB功能。
LP02114的主要特性如下:
●16/32位ARM7TDMI-S核,超小LQFP和HVQFN封装;
●16/32/64KB片内SRAM:
、
●128/256KB片内Flash程序存储器;
●128位宽度接Q/加速器可实现高达60MIlz工作频率;
●通过片内boot装载程序实现在系统编程(is巧和在应用编程(IAP);
●EmbeddedICE可实现断点和观察点;
●嵌入式跟踪宏单元(ETM)支持对执行代码进行无干扰的高速实时跟踪;
●10位A/D转换器,转换时间低至2.44ps;
●CAN接口,带有先进的验收滤波器;
●多个串行接口,包括2个16C550工业标准UART、高速I2C接口(400KHz)和2个SPI接口。
数据采集模块的电路设计:
数据采集模块的电路框图如图5所示
1.电源电路
图6电源电路原理图
LPC2114使用两组电源,I/O口供电电源为3.3V,内核以及外设供电电源为1.8V,所以系统设计为3.3V应用系统。
通过7805M05稳压到5V,使用LDO芯片(低压差电源芯片)稳压输出3.3V和1.8V电压。
LDO芯片采用的是LM1117MPX-3.3和LM1117MPX-1.8,输出电流800MA,输出电压精度在1%以内,还有电流限制和热保护功能。
如图六:
为LM1117MPX-3.3和LM1117MPX-1.8电源电路图
2.复位电路
由于ARM芯片的高速、低功耗、低工作电压导致其噪声容限低,对电源的纹波、瞬态响应性能、时钟源的稳定性、电源监控可靠性等诸多方面也提出了更高的要求。
本次开发的电源监控芯片采用的是MAX708SD,提高了系统的可靠性。
由子使用JTAG调试,使用了74HC125进行驱动。
3.系统时钟电路
LPC2114可以使用外部晶振或者外部时钟源,内部PLL电路可调整系统时钟,使得系统运行速度更快(CPU最大操作时钟为60MHz),倘若不使用片内PLL功能以及ISP下载功能,则外部晶振频率范围是1MHz-30MHz,外部时钟频率范围是1MHz-50MHz;若使用了片内PLL功能或者ISP下载功能,则外部晶振频率范围是IOMHz-25MHz,外部时钟范围是IOMHz--25MHz晶振。
本次设计使用的外部11.0592MHz,原因是这样使得串口波特率更精确,同时支持LPC2114芯片内部PLL功能和ISP功能。
4.
串口电路
由于系统是3.3V,所以使用了MAX3232进行RS232电平转换,MAX3232是3.3V工作电源的RS232转换芯片。
如图七,串口电路图。
4.8嵌入式Linux操作系统的移植
Linux操作系统是一个完整的、功能强大的操作系统、提供了大量的实用程序和各种各样的软件。
这些软件的正确性和有效性都经过了实际应用检验,可以根据需要,利用Linux提供的丰富的软件支持,迅速构建嵌入式应用的软件环境。
Ø交叉编译环境的建立
1.建立嵌入式Linux交叉开发环境;
本次系统开发语言主要使用基于嵌入式Unux的C语言,所有的工具都是遵循GPL许可的,可以下载所有的源代码,也可以直接下载别人编译好的二进制工具,这样就可以不需要经过自己编译的过程,基于交叉编译的方法,本系统的开发机使用的是普通的个人电脑PC机,操作系统采用的是RedHat9.0。
采用RedHat的好处是,安装方便,集成度高,稳定性强。
对于建立交叉编译的环境,是借用深圳远峰公司提供的针对嵌入式Linux的开发包,YUANFENG.tar.gz.。
具体的安装过程如下:
#tar-zxvfYF2410.tar.gz
#cd/YF2410
执行脚本文件,安装交叉编译环境
#./YFINSTALL.sh
安装完毕,为了方便使用arm-linux-gee编译系统,我们修改/etc/profile文件找到pathmunge/usr/local/sbin在其下面添加一行pathmunge/usr/local/amr/2.95.3/bin,到此完成了整个编译环境的安装。
软件开发的主要过程如下:
1)在PC机上利用arm-linux-gcc对程序进行编写、编译;
2)通过JTAG接口,或者网口,将程序下载到目标板。
2.配置开发主机
本次开发选用的开发主机采用的是PC机,主要配置:
P4处理器,40G硬盘,256M内存,操作系统:
RedHat9.0,Linux内核:
2.4.180,配置开发主机的minicom,一般的参数为波特率115200,数据位8位,停止位1位,
无奇偶校验,软件硬件流控都设为无。
配置网络,主要是配置NFS网络文件系统,需要关闭防火墙,简化嵌入式网络调试环境设置过程。
ØBootLoader的移植
芯片的Bootloader代码就是芯片复位后进入操作系统之前执行的一段代码,主要是为运行操作系统提供基本的运行环境,如初始化CPU堆栈、初始化存储器系统等。
Bootloader代码与CPU芯片的内核结构、具体芯片和使用的操作系统等因素有关。
其功能有点类似于PC机的BIOS程序,但是由于嵌入式系统的软硬件都要比PC机的简单,所以它的Bootloader代码要比BIOS程序简单得多。
嵌入式系统的资源有限,程序通常都是固化在ROM中运行。
ROM中的程序执行前,需要对系统硬件和软件运行环境进行初始化。
这些工作是用汇编语言和C语言编写的Bootloader代码完成的。
在ARM处理器的嵌入式系统中,Bootloader代码的作用主要有以下几点;
(一)初始化CPU各种模式的堆栈和寄存器;
(二)初始化系统中要使用的各种片内外设;
(三)初始化目标板;
(四)引导操作系统。
Bootloader代码是嵌入式系统中应用程序的开头部分,它与应用程序一起固化在ROM中,并首先在系统上运行。
设计好Bootloader代码是设计嵌入式程序的关键,也是系统能够正常工作的前提。
Bootloader代码所执行的操作主要依赖CPU内核的类型,以及正在开发的嵌入式系统软件中需要使用CPU芯片上的哪些资源oBootloader代码的一般流程(即Bootloader代码应该进行的操们,如图6所示。
当