智能小车嵌入式系统设计分析(精选11篇)
智能小车嵌入式系统设计分析 篇1
前言
智能小车是在动态不确定环境下对人工智能的考验,是以各种工控目的为载体的高科技对抗,是培养信息、自动化领域科技人才的重要手段,同时也是展示高科技水平的生动窗口和促进科技成果实用化和产业化的有效途径。智能小车的研究融入了机器人学、机电一体化技术、通讯与计算机技术、视觉与传感器技术、智能控制与决策等多学科的研究成果,反映出一个国家信息与自动化技术的综合实力。所以本论文对智能小车的研究意义重大。
-0
一、总体设计方案
1.总体方案
智能小车可在自主行驶和人工控制两种模式之间切换,并实现自动避障。通过PWM输出驱动步进电机来实现小车的行驶,改变PWM的周期、占空比、正反则可以实现前进、后退、转弯、加速、减速等行为。通过红外探头检测前方障碍实现自动避障。外接红外线接收器,可以通过自制的红外线遥控来控制小车的行为。
2.平台选取
EasyARM1138开发板
开发板搭载Luminary LM3S1138芯片,为32位ARM Cortex – M3内核(ARM v7架构),50Mhz运行频率。拥有7组GPIO,可配置为输入、输出、开漏、弱上拉等模式。4个32位Timer,每个都个拆分为2个独立子定时器。6路16位PWM,通过CCP管脚能产生高达25Mhz的方波。
自制车架
3456789 SYSCTL_SYSDIV_10);// 分频结果为20MHz */
TheSysClock = SysCtlClockGet();// 获取系统时钟,单位:Hz
}
int main(void){ jtagWait();/* 防止JTAG失效,重要!*/
SystemInit();
IR_Int_Init();
while(1){ if(IR_flag == 1){ IR_flag = 0;for(a = 18;a < 26;a++){ IR_code_8 = IR_code_8 << 1 + IR_code_32[a];}
if(IR_code_8 == 101){ SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);// 使能GPIOD端口
GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE , GPIO_PIN_0);// 设置PD0为输入类型 //forword GPIOPinWrite(GPIO_PORTD_BASE , GPIO_PIN_0 , 0x00);// PD0输出低电平 }
IR_code_8 = 0;
//switch(IR_code_8)//{ //case /*00000*/101:SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);// 使能GPIOD端口
// GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE , GPIO_PIN_0);
// 设置PD0为输入类型 //forword //
GPIOPinWrite(GPIO_PORTD_BASE , GPIO_PIN_0 , 0x00);// PD0输出低电平 //case /*0000*/1101://back //case /*0000*/1000://left //case /*0000*/1010://right //case /*0000*/1001://stop //case /*000*/10100://level_1 //case /*000*/10101://level_2 //case /*000*/10110://level_3 //default : //} //IR_code_8 = 0;} } }
/**************************************************************** ** Function name: GPIO_PORT_F_ISR
消除中断 不正 if(gap >=10 && gap <=20)//接收数据“1” { data = 1;code_flag = 1;} else if(gap >=2 && gap <=8)//接收数据“0” { data = 0;code_flag = 1;} else if(gap >=40 && gap <=50)//正常的其实高电平时间 { start_flag = 1;}
if(start_flag
&& //code_flag和start_flag均为1 { IR_code_32[i] = data;i++;
if(I >= 32){ IR_flag = 1;break;} } } } //} GPIOPinIntClear(IR_PORT,ulStatus);//-14 ** Descriptions: 延时100us ** input parameters: 无 ** output parameters: 无 ** Returned value: 无 ** Created by:
张伟杰
** Created Date: 2014.05.18 ****************************************************************/ void Delay_100_us(void){ unsigned ulValue;
SysTickPeriodSet(600);SysTickEnable();do { ulValue = SysTickValueGet();} while(ulValue > 0);
SysTickDisable();}
3.红外探头模块
#include
/* 定义按键 */ #define KEY_PORT SYSCTL_PERIPH_GPIOG #define KEY_PIN GPIO_PORTG_BASE , GPIO_PIN_5 #define keyGet()GPIOPinRead(KEY_PIN)
#define IR_PORT SYSCTL_PERIPH_GPIOF #define IR_PIN GPIO_PORTF_BASE , GPIO_PIN_1
// 定义全局的系统时钟变量
unsigned long TheSysClock = 12000000UL;unsigned IR_flag = 0;unsigned long IR_code_32[32];unsigned long IR_code_8 = 0;unsigned a;
int Time_Get();void Delay_100_us();
/**************************************************************** ** Function name: jtagWait ** Descriptions: 防止JTAG失效,KEY=PG5 ** input parameters: 无 ** output parameters: 无 ** Returned value: 无 ** Created by:
张伟杰
** Created Date: 2014.05.15 ****************************************************************/ void jtagWait(void){ SysCtlPeripheralEnable(KEY_PORT);/*
使能KEY所在的GPIO端口 */ GPIOPinTypeGPIOInput(KEY_PIN);/* 设置KEY所在管脚为输入 */ if(keyGet()== 0x00){ /* 如果复位时按下KEY,则进入 */ for(;;);/* 死循环,以等待JTAG连接 */ } SysCtlPeripheralDisable(KEY_PORT);/* 禁止KEY所在的GPIO端口 */ }
/**************************************************************** ** Function name: IR_Int_Init ** input parameters: 无 ** output parameters: 无 ** Returned value: 无 ** Created by:
张伟杰
** Created Date: 2014.05.18 ****************************************************************/ void IR_Int_Init(void){ SysCtlPeripheralEnable(IR_PORT);GPIOPinTypeGPIOInput(IR_PIN);GPIOIntTypeSet(IR_PIN,GPIO_LOW_LEVEL);GPIOPinIntEnable(IR_PIN);
IntEnable(INT_GPIOF);IntMasterEnable();}
-***3 SysTickPeriodSet(600);SysTickEnable();do { ulValue = SysTickValueGet();} while(ulValue > 0);
SysTickDisable();}
三、程序调试
调试PWM信号时,由于板上晶振为6Mhz,装载值和匹配值最大为65535,可以设置出需要的周期和占空比。如
TimerLoadSet(TIMER0_BASE , TIMER_BOTH , 60000);TimerMatchSet(TIMER0_BASE , TIMER_A , 6000);则对应的周期为6Mhz / 60K = 100Hz,占空比为0.6K / 6K = 1/10。配置PWM前要先配置GPIO口,定义为PWM输出,并选择Timer的输出模式为16位PWM,经过三重配置才能正确输出PWM信号。红外接收器解码过程重点是对红外码内间隔时间的判断。调试红外码时应当设当地设置flag帮助多个判断。当引导码时间参数符合标准时flag1置1,接收到正确的红外码,进入下一步。当用户码每个间隔符合标准的时间间隔时flag2置1,表示该一位码正确,进入一下步。当接收到32位数据后flag3置1,表示红外码结束,开始进行解码。解码部分用case语句进行判断。红外码用数组储存,使用的时候会方便一点。例如: for(a = 18;a < 26;a++){ IR_code_8 = IR_code_8 << 1 + IR_code_32[a];} 这样就可以随意获取某几位码进行下一步操作。
四、小结
本次课内实验把我带进了ARM的领域,通过动手编程和小组讨论,让我对项-25
智能小车嵌入式系统设计分析 篇2
随着现代化工业的发展,自动化控制出现了许多新的要求。“PC+运动控制器”是目前开放式数控系统中最常见的形式。主PC用于人机界面、存贮和通讯,DSP或A-SIC作从属CPU来实现实时控制、I/O中断和计算等。而嵌入式技术依靠其体积小、成本低、功能强、可裁剪等特点,适应了工业自动化发展的最新要求[1,2,3,4,5]。单片机作为控制系统的微处理器,在数据处理和代码存储等方面都已经无法满足系统的需求,ARM微处理器资源丰富,具有良好的通用性,其主要优点是高性能、低价格、低功耗。ARM本身是32位微处理器,但却集成了16位的Thumb指令集,这使得ARM可以代替16位的处理器如51系列单片机使用,同时具有32位处理器的速度。基于ARM的嵌入式系统其性能优良,移植性好,已广泛应用在各个行业,因此将ARM微处理器应用于智能小车的控制系统是一种较好的选择。
基于此,作者研究了一种基于ARM控制的智能小车,提高了对直流电机的控制效率,在ARM上移植了Windows CE操作系统,设计出了友好的人机界面,使开发过程变得容易。并对控制系统进行模块化设计,有利于智能小车的功能扩展和升级。
2 多功能智能小车结构设计
智能小车底盘采用三轮结构,前轮为万向轮,起支撑作用,不起导向作用。两个后轮采用独立的直流点击驱动,采用差动方式转向,通过控制左右电机转速和转向来实现小车的速度控制及实现小车的前进、后退、停止、左前转和右前转等功能。小车车体主要为两个直流电机驱动装置,分左轮驱动和右轮驱动。前轮为万向随动轮,在车体的下面有一个可以安装6节电池共7.2V的电池盒,小车的电源就是由它来提供的。在小车的底部有一个拨动开关,它负责控制整个小车的电源开通与关断。小车的前面安装有超声波传感器发射装置。小车的Solid Works如图1所示。
3 智能小车控制系统设计
多功能智能小车控制系统示意图如图2所示。
智能小车控制系统包括以下模块。
(1)主控模块
本控制系统的微控制器采用三星公司的S3C2440。它负责语音命令信号、语音回放编码信号、摇杆控制信号、遥控控制信号、超声波遇障信号的采集和直流电机PWM调速控制信号、超声波启动信号的发送,从而实现对各功能模块的全局协调控制。
(2)语音识别与回放模块
语音识别分为训练阶段和识别阶段:训练阶段的任务是建立识别基本单元的声学模型;识别阶段的任务是采用语音分析方法分析出语音特征参数,按照一定的准则和测度与系统模型进行比较,通过判断得出识别结果。本系统中的语音识别模块主要对有限的五个语音命令(前进、停止、后退、左转、右转命令)进行识别判断后,把命令信号进行编码并通过I/O口发送给主控芯片,主控芯片对命令信号进行处理,调用相应的子程序做出相应的动作回应。语音回放芯片内部集成语音信号放大、滤波、采样、A/D转换等模块。
(3)超声波避障模块
本系统采用渡越时间法测距[6],即D=Ct/2,其中D为移动机器人与被测物之间的距离;t为超声波从发射到返回的时间间隔,即渡越时间;C为声波在介质中的传输速率,一般认为超声波在空气中传播速率C为340m/s。由于单个超声波传感器具有探测波束角大、方向性差、只能获得目标的距离信息而不能准确地提供目标的边界信息、稳定性不理想等缺点,本系统采用了两个传感器,并利用ANN的方式对两个传感器的数据进行融合来提高探测精度,当测得障碍物的距离小于设定安全值时,中断调用停止子程序,使小车平稳减速停止,并启动语音回放模块进行语音提示,从而保证了小车行驶安全。
(4)操纵杆控制模块
操纵手柄主要由多轴控制器、手制动开关、档位按钮、手柄及导线组成。它将小车的行驶动作,如前进、后退、左转、右转和停止转换为相应的电信号并通过ARM的I/O口输入,ARM接收到控制命令后,调用相应的函数,产生PWM控制信号,从而实现小车的电机驱动控制。
(5)直流电机驱动模块
采用ARM芯片的脉宽调制器PWM来驱动直流电机,通过改变PWM信号的占空比来进行直流电机的速度调节,通过H桥电路来实现电机正反转的控制,直流电机功率驱动的具体电路如图3所示。直流电机驱动电路中的场效应管的驱动采用了光电隔离,这样就将直流电机的工作电源与ARM嵌入式系统的工作电源隔离开来,提高了ARM控制系统的可靠性和稳定性。
(6)电机转速检测模块
电机轴转速检测反馈电路系统中利用增量式光电编码器检测直流电机的实际转速,光电编码器信号一般有VCC、GND、A、B和Z,这里只连接电源和A信号,作为直流电机轴的位置和速度信号反馈。编码器反馈的脉冲信号经过光电耦合器对编码器内部的OC输出信号加上拉电阻(图4中R1),经过光电耦合器后信号经过RC滤波后送给ARM的外部中断INT0,在INT0的中断服务程序中对直流电机的转速进行检测,实现速度反馈。
4 智能小车控制系统软件设计
通过程序设计实现对智能小车的平稳运行控制。计算出合理的PWM值使小车在启动与停止时平稳加减速。转弯时采用电子差速控制,电子差速(Electrical Differential,简称ED)是一种以纯软件方式使各动力轮的行驶速度满足一定约束关系的差速方法,完全采用电控方式控制各车轮的转速,使其以不同速度转动,在转向的同时保证车轮不发生拖动或者滑移,而是作纯滚动。图5所示为智能小车控制系统的软件流程图。
5 智能小车运行检测
智能小车的控制方式有三种:操纵杆控制、遥控器控制和语音控制。通过操纵杆和遥控器可以发送前进、后退、左转、右转和停止五种命令来控制小车的运动。超声波自动检测障碍信号,遇到障碍小车停止。液晶屏上可以实时显示小车的运行速度以及一些其它的状态参数,如图6所示。经过现场测试,智能小车运行平稳,界面友好,实时性好。
6 结论
该智能小车控制系统采用了语音控制,使得小车的人机交互更具人性化。该小车还采用了高精度超声波避障模块,提高了智能小车行驶的安全性。采用功能强大的ARM嵌入式对智能小车的控制系统进行模块化设计,有利于小车功能的进一步升级和改进,提高了系统设计效率。本系统可以作为移动机器人的载体,在技术成熟以后可以应用于门禁系统、小区巡逻、实地勘测、智能玩具等领域。
摘要:为了实现智能小车的多功能控制,采用功能强大的嵌入式ARM对小车进行模块化设计,并使用在ARM芯片上移植Win-dows CE操作系统。该小车具有的主要功能模块有:操作杆控制,遥控器遥控控制,超声波智能避障,运行轨迹自主优化和运动速度平稳控制等。
关键词:嵌入式系统,运动控制,PWM
参考文献
[1]李磊,叶涛,谭民,等.移动机器人技术研究现状与未来[J].机器人,2002(05):475-480.
[2]Liu TH,Liu CH.Microcessor based controller design and simulation for a permanent magnet synchronous motor drive[J].IEEE Transon and Electrn,1998,35(4):516-523.
[3]鲁涛,原魁,朱海兵.智能轮椅研究现状及发展趋势[J].机器人技术与应用,2008(02):1-5.
[4]苏蕊.基于ARM芯片的嵌入式运动控制系统设计[J].微计算机信息,2008(11):137-138.
[5]章小兵,乔茹,赵光兴.基于改进蚁群算法的移动机器人全局路径规划[J].机电工程,2009(03):90-93.
智能小车嵌入式系统设计分析 篇3
【关键词】智能小车;语音无线遥控系统;硬件;设计
1语音无线遥控器的设计原理
语音无线遥控器结构主要由STM32F103ZET6核心控制板模块、SD卡存储器模块、语音识别模块和NRF24L01无线模块组成。其中语音识别模块是由语音输人与输出模块、语音识别芯片组成。所有的模块都是通过串行SPI方式与核心控制板相连,并由它控制。结构原理框图如图3.1所示。
语音无线遥控器的工作原理如下:通过麦克风发出控制指令控制,语音识别模块识别,产生一个32位控制码取决于控制信号由单片机的SD存储模块匹配“【关键词】列表”,然后由语音识别模块扬声器说话的声音播放出来,然后MCU发送控制信号以控制无线传输模块发送到控制码以无线电波的形式,由一个小的车接收的车辆控制单元的后MCU处理和控制小车产生预期的作用。它接收到的语音命令,通过语音识别处理的麦克风,和将识别结果作为二进制码到中央控制器,用于处理输出。
2 语音识别模块设计
LD3320芯片是一个“语音识别”专用芯片。这种芯片融合了语音识别处理器和一些包括AD,DA转换器,音频输出接口,麦克风插孔等外部电路。注重节能减排和芯片设计效率,该芯片不需要任何外部援助,如闪存,RAM等,直接集成在可实施的语音识别/语音/互动功能的现有产品,并确定关键词的列表可以在任何动态编辑。目前,语音识别芯片,通常是基于特定人的语音识别技术,芯片不能被修改,以确定工厂出厂后的条目只能识别进入识别预制之前。本文采用语音识别芯片LD3320作为研究的系统,制定语音识别解决方案。ICRoute产生LD3320是基于语音识别技术,语音识别/声音芯片的非特定的人。外围只需要低级单片机水平,让MCU控制芯片LD3320,麦克风连接到AD引脚,就能达到语音识别功能。LD3320具有高效的非特定人语音识别搜索引擎和完整的特征库。LD3320语音识别有高达94%准确率,而且无需语音训练。LD3320模块原理图如图3.3所示。
2.1 语音识别芯片LD3320的工作原理
LD3320语音识别芯片采用的就是ASR技术,LD3320的语音识别进程,首先对由麦克风输入的语音进行频谱分析。让语音与关键词列表的词进行比较,最后最相近的关键词作为识别结果。
语音识别芯片LD3320采用ASR技术,提供了一种脱离各种各样操作方式只用语音来控制系统的操作,这样使得操作更简单、快速和自然。使用者只需要以字符串的形式把识别的关键词语传送进芯片,就可以让识别立即生效,例如,使用者编程时,简单地通过设置芯片的寄存器,把诸如“关灯”这样的关键词语的内容动态地传人芯片中,芯片就可以识别所设定的关键词语了,关键词就是由汉语拼音组成。LD3320的语音识别系统可以随着程序,在运行时动态地更改关键词语列表的内容,应用到多种不同的场景,而且不需要语音训练。
2.2 语音识别技术
语音识别(ASR)技术是基于“关键词语列表”的识别技术,它是对大量的语音数据经语言学家语音模型分析,建立数学模型,并经过反复训练提取基元语音的细节特征,以及提取各基元间的特征差异,得到在统计概率最优化意义上的各个基元语音特征,再利用算法以及语音模型转换成硬件芯片并广泛应用在嵌入式系统中。ASR技术的每次语音识别的过程就是把使用者说出的语音内容,利用频谱转换为语音特征,再将这个转换后的语音特征和“关键词语列表”中的条目一一进行匹配,匹配到与列表中最相近的就作为识别结果。如ASR技术在语音控制的手机应用中,这个“关键词语列表”的内容手机中各个应用的名称,不论这个识别列表的内容是什么,只需要使用者设置相关的寄存器,就可以把相应的待识别条目内容以字符形式传递给识别引擎,就能达到识别的目的[14]。
2.3 LD3320的用户使用模式
LD3320具有两种识别模式,分别是“触发识别模式”和“循环识别模式”。两种不同的识别模式可以通过编程设置。触发识别模式:通过按键让MCU开启定时识别过程(比如5 s),在这个定时过程中使用者说出要识别列表中的语音关键词语。直到整个识别过程结束后,使用者才能再一次触发识别[15]。循环识别模式:MCU 反复开启识别过程,如果声音输入就不会产生识别结果,每次识别都有一个定时的识别过程;如果产生了识别结果,则根据识别列表的作相应处理后(比如播放语音),才允许开启下一个识别过程。
3主控制器模块
无线语音遥控系统跟智能小车系统所采用的核心控制器都是ST公司的STM32F103ZET6这一款芯片。其电路图附录A所示。该芯片基于ARM Cortex—M3 32位的RISC内核,工作频率最高可达72 MHz,内置高速存储器(256 KB 的闪存和20 KB 的SRAM)。STM32系列提供了全新的32位产品选项,具有高性能、实时、低功耗、低电压等特性,同时让高集成度和易于开发的优势结合在一起,将32位MCU世界的性能和功效引向一个新的级别。
4 存储模块
一般的芯片里面都没有足够的储存空间,然而语音数据又必须有个地方存储,才能正常的播报出来。本系统采用了通用的SD卡模块,可以随意扩张内存。最主要作用用来保存剪辑的或自己录制与制作的MP3格式的语音材料,存储模块的电路图如图3.5所示。
5无线模块
1、nRF24.L01是一款新型单片射频收发器件,工作于2.4 GHz~2.5 GHz ISM频段,里面有频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,可通过程序进行配置输出功率和通信频道[18]。nRF24L01是低功耗,在以-6 dBm的功率发射时,也只有9 mA的工作电流;接收的时候,只有12.3 mA工作电流,大量的低功率工作模式(掉电和空闲模式)使设计节能更方便。
2、发射数据:将nRF24L01设置为发射模式,利用SPI协议把接收地址和数据写到nRF24L01缓存区,CSN为低时才能连续写入数据,发射时只要配置一次发射地址就可以,再保持CE为至少10μs高电平和延迟130μs,这样就能发射数据[19]。
3、接收数据:将nRF24L01配置为接收模式,延迟130μs,则就为接收状态,这时只要等待数据的到来。当接收到正确地址和CRC时,数据包就会被存储在RX FIFO中,同时RX_DR中断标志位被置高,IRQ被置低,中断发生,MCU这时就会去读数据,这样就接收到数据了[20]。
智能小车设计报告 篇4
魏旭峰、孔凡明、陈梦洋
(河北科技大学 电气信息学院)摘要:
AT89S52单片机是一款八位单片机,他的易用性和多功能性受到了广大使用者的好评。该设计是结合科研项目而确定的设计类课题。本系统以设计题目的要求为目的,采用89S52单片机为控制核心,利用红外线传感器检测道路上的黑线,控制电动小汽车的自动寻路,快慢速行驶。整个系统的电路结构简单,可靠性能高。实验测试结果满足要求,本文着重介绍了该系统的硬件设计方法及测试结果分析。
采用的技术主要有:
通过编程来控制小车的速度及方向; 传感器的有效应用; 1602液晶显示的应用;
关键词: 89S52单片机、光电检测器、PWM调速、电动小车
第一章 方案设计与论证
一 供电系统
二 光电检测系统
三 单片机最小应用系统设计
四 液晶显示1602的应用
五 电机驱动
第二章 软件设计
第二章 方案设计与论证
根据要求,小车应在规定的赛道上行驶,赛道中央黑线宽为25MM,确定如下方案: 在现有玩具电动车的基础上,加装光电检测器,实现对电动车的位置的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的转向和速度的智能控制.这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。
一 供电系统
本模块使用LM2940芯片输出+5V的电压,为89S52单片机光电检测电路供电,采用LM1117可控变压芯片输出+6V电压为舵机供电.而电机则由单片机来控制,当单片机输出的电压不同时,电机的转速不同,以此来达到控制小车速度的目的.电路如图:
二 光电检测系统
本模块采用七对红外线发射和接收对管,来检测小车前方黑线位置和模拟车站停车位置.发射管发射管出红外线,当对管正下方为白色跑道时,发射管发射出去的红外线会被反射回来, 接收因接收到红外线而导通,两端电压为零,当对管正下方为黑色线时,黑线将吸收红外线,接收管因接收不到红外线而无法导通,两端电压为+4V左右,将接收管端电压与一个给定电压经LM324比较后输出0和+5V两固定个值,当对管正下方为白色时输出+5V电压,当对管正下方为黑线时输出0V,输出的电压交给单片机,以此来确定黑线的位置.电路如图:
三 单片机最小应用系统设计
89S52单片机是本系统的核心所在,自动寻迹和调速都是它控制, 七对光电对管经比较器输出的电压输入单片机,单片机根据电压的高低来判断黑线位置,进而调整速度和方向,电路如下:
四 舵机的应用
舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前在高档遥控玩具,如航模,包括飞机模型,潜艇模型;遥控机器人中已经使用得比较普遍。舵机是一种俗称,其实是一种伺服马达。
其工作原理是:单片机放的控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。
舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。
五 电机驱动
电机驱动电路是根据单片机的控制型号来控制电机的转动的,电路如下:
第二章 软件设计 #include
#define uchar unsigned char//宏定义 uchar duoj,dianj,time0=0,time1=0,L=0,e=30;void timer0()interrupt 1 //定时器零 控制舵机 { time0++;
if(time0==duoj)moto=0;if(time0==80){ time0=0;
moto=1;} TH0=(65536-313)/256;TL0=(65536-313)%256;} void timer1()interrupt 3 ///定时器一 控制电机 { time1++;if(time1==dianj)in1=1;if(time1==80){
time1=0;
in1=0;} TH1=(65536-340)/256;TL1=(65536-340)%256;}
void main()/////主函数开始 { TMOD=0x11;TH0=(65536-313)/256;TL0=(65536-313)%256;TH1=(65536-340)/256;TL1=(65536-340)%256;EA=1;ET0=1;
ET1=1;in1=0;moto=1;TR0=1;TR1=1;while(1)//////检测黑线位置
{
while(1)
{
if(P1==0xff){duoj=8;dianj=55;break;} 全白时缓进
if(L1==0){duoj=10;dianj=37;L=1;break;} //L1
if(L7==0){duoj=6;dianj=37;L=7;break;} //L7
if(L2==0){duoj=10;dianj=22;L=2;break;} //L2
if(L6==0){duoj=6;dianj=22;L=6;break;} //L6
//
if(L3==0){duoj=9;dianj=27;L=3;break;} //L3
if(L5==0){duoj=7;dianj=27;L=5;break;}
//L5
if(L4==0){duoj=8;dianj=70;L=4;break;}
//l4
//else {duoj=8;dianj=17;break;}
}
while(P1==0xff)当检测不到信号时保持最后的状态
{
switch(L)
{
case 1:duoj=10;dianj=39;break;
case 2:duoj=10;dianj=22;break;
// case 3:duoj=9;dianj=25;break;
// case 4:duoj=8;dianj=70;break;
// case 5:duoj=7;dianj=25;break;
case 6:duoj=6;dianj=22;break;
case 7:duoj=6;dianj=39;break;
}
智能小车嵌入式系统设计分析 篇5
参考文献
[1] 赵海兰.基于单片机的红外遥控智能小车的设计[J].无线互联科技, 2011年3期.[2] 何立民.单片机技术的现状与未来[J].中国计算机报, 2012年 No:30.[3] 姚培等.基于单片机控制的智能循迹避障小车[J].机电信息,2010年12期.[4] 赵振德.多功能遥控智能小车的制作[J].电子制作, 2011年4期.[5] 李瀚霖等.智能小车研究与设计[J].科技致富向导,2011年26期.[6] 周淑娟.基于单片机智能寻迹小车的设计方案[J].工业技术与职业教育,2011年6月第9卷第2期.[7] 黄杰.基于模糊控制的智能车辆设计[J].中国科技信息,2010.20.[8] 陈铁军.智能控制理论及应用[M].北京:清华大学出版社,2009.1.[9] 张毅刚,彭喜元,彭宇.单片机原理及应用[M],高等教育出版社,2010.5.[10] 刘南平.电子产品设计与制作技术[J].科学出版社,2008.[11] 杨刚.电子系统设计与实践[J].电子工业出版社,2009.3.[12] 寸晓非.基于飞恩卡尔的智能循迹车设计.荆楚学院报,2012.04.[13] 隋研.基于数字PID的智能小车控制[J].杂志商店,2012.06 [14] 张友德.单片机原理与应用技术.机械工业出版社,2004 [15] 吴黎明.数字控制技术.科学出版社,2009.11.
智能小车嵌入式系统设计分析 篇6
摘要:主要从嵌入式系统自身的特点出发,介绍一种新型的基于嵌入式网关的家庭智能系统。系统以以太网为通信媒介,利用嵌入式网关进行家庭内外信息交换,通过浏览器对家庭的各种信息进行实时、有效的管理和调度,为现代家庭生活提供智能服务。关键词:W3100A嵌入式网关DNSDHCP
引言
当今社会逐渐入网络时代,因特网已成为重要的基础信息设施。目前,大部分网络终端仍以PC的形式出现,但是从计算机应用普及的情况看,嵌入式系统更为普及,过去大量的浩如烟海的8位/16位单片机的嵌入式设备,已经到了享受网络方便的时候了。近来的统计证明:PC机CPU的产量仅是MCU产量的1/100,并且由于MCU的成本低廉,应用非常普及。在工业测控、智能仪器、智能家庭领域,MCU应用系统已无处不在。在这些场合中,以MCU为核心的设备同样也需要解决接入因特网的问题。本文在分析嵌入式系统与常规计算机系统研发不同点的基础上,介绍一种新型家庭智能系统。
1家庭智能系统的体系结构
家庭智能系统体系结构的总体框图如图1所示。从大的方面看,家庭智能系统可由三部分组成:家庭自动化外部接口模块、家庭自动化图像模块、家庭智能化内部无线收发与控制模块。未来的家庭中,多件家用电器与各种报警器将组成一个家庭的内部网,并通过内部网的网关接入因特网。一方面,内部网中的家电可以通过网关访问因特网上资源。如网络电视机每天早晨自动访问用户喜欢的某个电视台的网站,自动下载晚上的节目表。另一方面,用户可以在因特网任务一点通过浏览器对家里的家用电器与报警器进行远程控制。如用户出门在外,可以在外地上网,通过浏览器,启动家里的摄像机实时监察家里的安全。家庭自动化内部无线网模块要由消息处理模块和基于工频的无线收模块(NRF401)构成。它将成为Internet网的发展沃土,顺应“网络服务”向“网络应用”扩展的大潮。本文主要介绍嵌入式网关,以及如何在远程访问具有静态或动态IP地址嵌入式网关的技术。
2嵌入式网关
目前,国内外嵌入式网关的设计有二种方案:第一种方案,是基于软件来实现TCP/IP协议栈;第二种是直接利用TCP/IP协议栈芯片。本文介绍的嵌入式网关采用第二种方案,它由W3100A、RTL8201、MCU组成,如图2所示。
图2中,DLC为数据链路控制,MAC为媒体访问控制,IP为网际协议,ICMP为因特网控制报文协议,TCP为传输控制协议,UDP为用户数据摄协议,DPRAM为双端口存储器。
第一种方案在大批量生产时,具有成本低的优点,因为用软件设计的TCP/IP协议栈,是一次投交多次使用;但开始投次比较大且设计复杂,因为需要实时操作系统的支持,而第二种方案,尽管在大指生产时成本高,因为每个智能设备都要嵌入TCP/IP协议栈芯片;但是在非大批量生产时具有投次比较大,设计简单、灵活的特点,因为不需要实时操作系统的支持。本文采用的TCP/IP协议栈芯片是W3100A.它有如下特点:首先,它自带TCP/IP协议栈(如TCP、UDP、Ipver.4、ICMP、ARP、DLC、MAC协议);其次,它能同时支持四个独立的连接通道,具有高速传输速率(如网关的MCU用Atmel8951,那么网关的传输速率是200b/s;若用Intel386,那么网关的传输速率是3Mb/s)同时,它具有与MCU和物理层电路接口。从图2可以看到;W3100A除了具有上述特点外,还提供了Socket应用程序编程接口,为那种需要进行因特网连接的智能设备,提供了一种简便、廉价、高效的方案,只要将W3100嵌入智能设备就可以了。这样,大大减少了软件研发费用,减轻了MCU的工作量,同时便利该产品具有竞争力,并符合嵌入式系统设计原则:①价格。由于嵌入式设备对价格非常敏感,通常要求价廉质优,故在设计产品时,在满足功能要求的情况下尽量降低成本。②环境。在功能要求满足的同时,要考虑到该产品在恶劣环境下,能否正常工作,比如温度、电源功耗等等。③使用。用户在使用时,操作应尽量简单。
RTL8201是单口10/100Mb/s以太网收发器,超低耗和少于180mA/3.3V操作电压,支持全双工和半双工操作,提供一个LED显示器指示一个网络回环存在。由于上述的优点,该嵌入式网关可以用在IP电话、网络MP3、网络相机和工业控制总线上。图3是嵌入式网关的原理图。
3软件设计思想
为了适应分组到达的随机性,系统必须具有能够从网络接口读取分组的能力,故本系统采用“软件中断”的机制。当一个分组到达时,产生一个硬件中断,设备驱动程序接收分组重置接口设备。在中断返回之前,设备驱动程序会通知硬件安排下一个较低优先级的中断;在此次硬件中断结束后,低优先级的中断会继续执行。下面结合“软件中断”的机制、动态主机配置协议(DHCP)和域名系统(DNS),来说明如何在远程访问具有静态或动态IP地址嵌入式网关的技术(主要说明如何在远程访问具有动态IP地址嵌入式网关的技术)。在介绍该技术前,先介
绍几个概念。
(1)DHCP原理
当一台设置为自动获取IP地址的计算机在登录网络时,会向网络上发送“租”一个IP地址的请求,专门负责提供IP地址的DHCP服务器回应这个请求,为这台计算机提供一个空闲的IP地址。DHCP的主要用途是:通过服务器的伺服进程协助来控管各个主机(执行中的用户端)上不可缺少的网络连线参数。
(2)DNS
DNS(DomainNameSystem,域名系统)是一种组织成域层次结构的计算机和网络服务命名系统,用于TCP/IP网络。它主要是通过用户亲切而友好的名称代替枯燥而难记的IP地址,以定位相应的计算机和相应服务。DNS就是完成在名称和IP地址之间的映射。对于动态分配IP,做一个DHCP程序来绑定用户网关的MAC地址和IP地址,然后再根据不同IP设定权限,防止IP地址盗用。
(3)HTTP协议的作用原理
WWW是以Internet作为传输媒介的一个应用系统,WWW网上最基本的传输单位是Web网络。WWW的工作基于客户机/服务器计算模型,由Web浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信。HTTP协议是基础TCP/IP协议之上的协议,是Web浏览器来Web服务器之间的应用层协议,是通用的、无状态的、面向对象的协议。
图4基于嵌入式网关的服务器与远程浏览器的请求与应答示意图
根据上述HTTP协议的作用原理,本文实现了基于浏览器/嵌入式Web服务器模式的家庭智能系统。首先初始化W3100ATRTL8201,通过UDP传输DHCP报文,获取动态IP地址,再得到DNS服务器支持,由DNS服务器负责建立IP地址与域名(别名)映射;同时,创建进程负责IP地址与域名(别名)映射更新,确保通过别名就可以访问该嵌入式设备。初始化完成后,远程浏览器就可以进行TCP链接了。建立TCP链接后,服务器等待远程浏览器的请求,是一个被动的设备。当接收到建立TCP链接的请求后,来识别随后收到的来自远程客户机浏览器的.数据包。通过软件中断,监听W3100A、等待、接受客户机连接到RTL8201后,在W3100A体现出来的标志;创建与Socket字相关联的输入流和输出流;然后读取客户机的请求信息。在用户登录前,远程浏览器必须获得存储在Flash内部的网页,由此才能进行登录和控制。GET为其请求数据包中的第一个词,表示这个请求是用来接收Web资源的。该服务器仅对HTTP请求的第一行Get/home.html/HTTP.1进行检查和解释。因为除了数据外,所有响应信息数据都是常量。服务器的响应数据包已经由程序定制好,存放在服务器中。响应的HTTP数据头和资源一起存放在Flash中。服务器与浏览器链接建立后,服务器检查接收的请求数据,然后调用8051内部的程序模块,将相应的home.html发送给远程浏览器。Web页的存储范围为0000H~7FF0H,大约32KB,而8字节的用户名和8字节的密码可以存放在外围Flash存储区未端。在处理浏览器提交的数据信息时,按照两个步骤进行程序设计。首先,服务器根据远程浏览器传送过来的数据信息,决定服务器的HTTP服务的方式。其实,将Web资源发送给远程浏览器或使用函数来处理浏览器提交的数据,并将此数据传递给消息处理模块。该消息处理模块根据所要控制设备类型查表,然后启动无线收发模块将表中的消息发送出去。每个智能设备根据此消息启动相应的操作,并借助于设计合理的数据结构和函数实现软件设计。上述过程可用图4和图5形象地说明。
结语
智能小车嵌入式系统设计分析 篇7
智能小车又称轮式移动机器人,集环境感知、规划决策、自动行驶等功能于一体,集中地运用了自动控制、模式识别、传感器技术、电气、计算机、机械等多方面学科的知识[1]。
如何使智能小车具有高控制精度和性能,控制系统起着重要的作用。利用传统的PID控制智能小车直流电机难以满足动态性能、高精度和高性能要求[2]。
本文利用模糊-PID对智能小车进行速度控制,首先利用Matlab进行了仿真研究,在此基础上,以单片机为核心,设计了智能小车模糊-PID调速系统,通过小车良好运行,验证了设计系统的准确性。
1 模糊-PID控制
在常规PID控制中,当PID控制器的结构和算法已经确定,控制品质的好坏主要取决于控制参数选择是否合理。通常,不同的偏差e和偏差变化率ec,对PID控制器参数Kp、Ki、Kd的整定要求不同[3]。
模糊-PID是在常规的PID基础上,以被控对象的反馈值与目标值的误差e和误差变化率ec作为输入,用模糊推理的方法对PID的参数Kp、Ki、Kd进行在线自整定,以满足不同e和ec对控制器参数的不同要求,从而使被控对象具有良好的动态性能和静态性能。图1为该控制器结构图。
模糊-PID控制器输入为e和ec的模糊集E,EC。输出为△Kp、△Ki、△Kd。设量化论域均为{-1,1}。为了方便计算,模糊语言子集E、EC和△Kp、△Ki、△Kd均为“正大(PB)”、“正中(PM)”、 “正小(PS)”、 “零(ZO)”、 “负小(NS)”、“负中(NM)”、“负大(NB)”7个模糊子集。采用均匀分布三角形作为模糊隶属函数。模糊推理采用最大-最小方法,而清晰化法采用重心法。
建立模糊规则表,如表1所示。
2 模糊-PID系统仿真
利用Matlab/Simulink,对直流电机调速系统采用传统PID控制与模糊-PID控制,对不同调速系统在阶跃信号下的动态响应进行了对比。
2.1 直流电动机数学模型[4]
根据电压定律,得到电枢贿赂的微分方程式:
undefined
其中,ed为电动机电枢反电势,Rd为电动机电枢回路电阻,Ld为电动机电枢回路电感,id为电动机电枢回路电流。
电机产生的反电动势为:
ed=Cen (2)
因此由式(1)和(2)得到电机的动方程式:
undefined
在无负载的理想机械运动方程的微分形式为:
undefined
M为电动机的转矩,GD2为电动机的飞轮惯量。
M=Cmid (5)
Cm为电动机的转矩常数。
将上述各式,消去中间变量M、id,整理并进行拉氏变换,得直流电机的传递函数:
undefined
电机参数:额定电压Ue=12V, 额定功率Pe=3.2W,转速ne=1200rpm,电枢电流Ie=100mA,电机时间常数Tm=11ms,通过计算直流电机相关参数,得到传递函数为:
undefined
2.2 Matlab/simulink仿真
在Matlab软件中,运行Fuzzy函数进入模糊逻辑器,建立模糊控制器。在Simulink中搭建直流电机PID-模糊控制模型。结果保存在workspace中。
图2为常规PID与模糊-PID控制比较图。仿真结果表明,模糊-PID控制系统动态性能、稳定性能比常规PID控制系统好,既能减小振荡,又能较好达到稳态。系统的鲁棒性、稳态精度高。
仿真为后面智能小车程序设计做好准备。
3 模糊-PID直流电机调速系统设计
3.1 智能小车硬件组成
智能小车由车体、直流电源模块、检测模块、控制模块、电机驱动模块和辅助调试模块构成。控制模块采用MC9S12DG128B单片机。系统结构如图3所示。
电源模块为系统各个模块提供可靠工作电压。本设计中采用6V直流电压。由于电路中不同电路模块所需要的工作电压和电流容量各不相同,因此需要电源进行稳压,转换为所需电压。
检测模块主要为速度检测与路径检测。路径检测采用红外发射头与接收管进行判断。
利用LG9110芯片进行电机的驱动。
3.2 调速系统结构
利用MC9S12DG128B单片机产生PWM,采用模糊-PID控制算法,对智能小车进行速度控制。速度检测采用反射式红外传感器加编码盘对速度进行测试。调速系统组成如图4所示。
3.3 程序设计
实现模糊-PID控制有两种方法,方法一是硬件法,另一是软件法。硬件法是通过专用硬件模糊控制器,直接在硬件模糊芯片上实现模糊 控制全过程。软件法是模糊控制的3个主要步骤在MCU上通过编程实现,目前大致分为查表法、公式法和推理法3种。本设计编程采用推理法。图5为模糊-PID程序流程。
根据上述仿真,利用推理法从模糊规则语句中直接推出结果,存入存储器中。
4 结束语
从最后智能小车的运行情况得到,采用本方案设计的小车,能很好地减少小车调整速度的时间,系统可靠性得到提高,运行稳定,定位准确,达到了设计的要求。
参考文献
[1]唐平江,周永华.基于自适应模糊PID智能车用直流电机控制器仿真研究[J].微型机与应用,2011,30(14):79-81.
[2]肖金凤,盛义发,等.模糊-PID混合控制直流电机调速系统设计[J].微电机,2011,44(5):56-59.
[3]常满波,胡鹏飞.基于MATLAB的模糊PID控制器设计和仿真研究[J].机车电传动,2002(5):34-36.
智能小车心得与体会 篇8
本学期电子设计制作与创新提高课程的学习任务,是让我们制作智能小车,过程非常有趣,在动手操作的同时又学习了模拟电子的相关知识,让我们的课程学习也非常方便。
通过此次的设计制作,使我们更加认识到了动手能力和理论知识的重要性,而理论与实践的结合更是重中之重。当然,我们也深刻地认识到我们的不足,由于自身理论知识的欠缺和动手能力的不佳在工作中频频受阻,走了好多弯路,虽然在制作过程中不可避免地遇到很多问题,但是最后还是在老师以及同学的帮助下圆满解决了这些问题,实现了整个系统设计与最后调试,相关指标达到预期的要求,很好地完成了本次设计任务。
经过多次的修改和调试测量,本设计基本符合设计要求,由于受人为因素和软硬件的限制,系统难免不了带来一些误差,但通过调节和精确计算可以减小误差,并且在不断的摸索前进中我们学到了很多东西。特别是,在老师的帮助下,我们获得的不只是知识和成果,还有比之更重要的学习方法和解决问题的能力,这将是我们一生的财富,就像我们在老师的帮助下不断的寻找着打开各个知识宝库的金钥匙。
智能小车嵌入式系统设计分析 篇9
1系统的需求分析
1.1新能源汽车的信息要求
新能源汽车是指除汽油、柴油发动机之外所有其它能源汽车,其废气排放量比较低或者没有废气的排放。主要包括液化石油气汽车,混合动力汽车,纯电动汽车,及氢能源动力汽车等。
新能源汽车的推广对于环境的保护意义是重大的,在杭州、上海、深圳等城市,现在大多数的公交都采用的是纯电动汽车,噪音小,污染低,这对于城市的可持续发展也是起到促进作用的。
1.2节能减排智能控制汽车信息管理系统的功能需求
为了让更多的人了解新能源车,无论是它的资讯,性能,价格类型,或者购买过的人的真切评价,销量等,我们之前已成功建立了“低碳智能机动车信息管理系统”。但是考虑到现在新能源汽车的快速发展,以及其广阔的发展前景。我们将在完善之前的系统前提下,推出“节能减排智能控制汽车信息管理系统设计与开发”。我们将结合线上线下,PC端与移动端来实现节能减排新能源汽车各项服务的智能控制。
1.3节能减排智能控制汽车信息管理系统的软硬件环境要求:
1.3.1软件需求
adobe photoshop cs5、flash cs5、adobe dreamweaver、Office Access等。
1.3.2硬件需求
操作系统:Microsoft Windows7;内存1G及以上;1024x768屏幕(推荐 1280x800),16位显卡等。
1.3.3技术支持
智能小车嵌入式系统设计分析 篇10
随着计算机、电子、通信、自动控制等技术的迅速发展及众多智能小车竞赛的推广, 智能小车近几年得到飞速发展。目前, 大多数智能小车导航系统采用超声波定位, 这种系统通过比较自身和发射点位置决定运动方向, 原理和卫星导航类似, 其本质是通过建立坐标系进行导航。而基于红外线的智能小车自动导航充电系统是通过比较自身运动方向和红外接收器确定的扫描方向判断运动方向, 原理完全不同。
2 系统整体设计
2.1 系统目标
在一个平面场地内, 充电站固定在某一位置, 例如O点, 智能小车在平面场地内任意位置工作, 例如A点。当电量很低时, 小车根据设定算法, 自动调整方向前往充电站进行充电。如图1所示。
2.2 系统组成
整个系统由智能小车和充电站两部分组成。智能小车包括小车运动系统、超声波测距装置、无线和红外通信装置、电池电量检测传感器和运动方向与红外扫描方向检测装置。充电站包括无线和红外通信装置、稳压电源变换和充电控制装置。
2.3 部分子系统介绍
小车和充电站都配置无线信号收发器, 以起到充电请求和应答作用。小车配置红外线接收装置, 充电站配置红外线发射装置。工作时, 红外发射和接收装置在电动机带动下以不同角度在一定范围内来回转动, 以保证发射和接收有交叉。一般情况下, 发射端旋转较慢, 接收端旋转较快。当小车接收到红外线信号, 系统会自动检测小车当前运动方向与红外线接收器扫描方向的夹角, 以控制小车转向。夹角较大, 小车转角较大, 夹角较小, 小车转角较小。
3 系统工作原理
当智能小车的电池电量检测传感器检测到电池电量低于设定值, 小车暂停当前任务停在原地, 启动无线发射装置, 向充电站提出充电请求。充电站接到小车充电请求, 启动红外发射装置, 并通过无线信号回复“准备好”的信息。小车接到回复信息, 启动红外接收装置。
小车的红外接收器在旋转扫描时, 带着接收器方向标记一起旋转。当小车接到红外信号, 红外接收器停止旋转, 启动运动方向与红外扫描方向检测装置检测夹角, 并根据一定算法判断夹角进行车身调整, 控制小车移动和转向。当夹角减小到一定角度, 小车停止转动和行进, 完成第一个“方向调整”动作, 然后启动红外接收器继续旋转扫描, 直到接收器接收到下个红外信号, 系统再次检测夹角, 小车完成第二个“方向调整”动作, 整个过程周而复始。在小车完成若干个“方向调整”动作后, 方向夹角越来越小, 小车行进速度也越来越快。当接收器检测到夹角为零, 小车前进较长距离, 然后接收器继续检测方向夹角是否错误, 有错继续调整, 无错则快速行进。
在1:1的系统 (一个充电站配一个智能小车) 中, 技术人员可以通过改进充电站的红外线发射方式, 大幅度提高红外线导航速度。对于1:N的系统 (一个充电站配N个智能小车) , 新加入一辆小车不需改动太多程序。如果利用红外线通信功能, 还可提高系统其他方面性能。
4 导航程序流程图 (图2)
5 结语
本系统利用红外线作为智能小车的导航充电手段, 整个导航过程中只需为充电站配置一个红外线发射器, 不需额外设备。如果采用超声波导航, 可能需要通过两个或三个发射点建立坐标。此外, 相对超声波系统, 红外线系统还具有接收距离较远、设备价格便宜的优势。因此, 虽然智能小车的红外线自动导航充电技术尚未成熟, 但仍是一种值得探讨研究的技术。
参考文献
[1]肖景和, 赵健.红外线、热释电与超声波遥控电路[M].北京:人民邮电出版社, 2003.
[2]张毅刚.单片机原理及应用[M].北京:高等教育出版社, 2005.
嵌入式系统设计与应用 篇11
嵌入式系统定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专用计算机系统。(一切非PC计算机系统)嵌入式系统特点:“专用”计算机系统,运行环境差异很大,比通用PC系统资源少,功耗低,体积小,集成度高,成本低,具有完整的系统测试和可靠性评估体系,具有较长的生命周期,需要专用开发工具和方法进行设计,包含专用调试电路,多学科知识集成系统。嵌入式系统应用范围:汽车,工业控制,通信设备,消费电子,商业终端,航空航天,军事需求。
嵌入式系统的基本开发流程:系统定义与需求分析阶段,方案设计阶段,详细设计阶段,软、硬件集成测试阶段,系统功能性测试及可靠性测试阶段。
系统定义与需求分析阶段:对系统需求进行分析,制定系统的设计依据。方案设计阶段:确定系统初步设计方案并形成设计描述文档。详细设计阶段:完善初步方案,对方案实施详细设计。
软硬件集成测试阶段:对系统软硬件进行综合测试,验证系统设计功能。
系统功能性能测试及可靠性测试测试:对系统功能,性能,可靠性进行综合测评。
对于使用操作系统的嵌入式系统来说,嵌入式系统软件结构一般包含4个层面:板级支持包层,实时操作系统(RTOS)层,应用程序接口(API)层,应用程序层。有些资料将应用程序接口API归属于OS层,按3层划分的应用程序控制系统的运作和行为;操作系统与硬件无关,不同的嵌入式操作系统其组成结构也不尽相同 嵌入式操作系统种类繁多,大体分为两种:商用型和免费型
商用型:VxWorks,Windows CE,pSoS,Palm OS,OS-9,LynxOS,QNX和LYNX 免费型:Linux和uC/OS—II uC/OS—II具有执行效率高,占用空间小,可移植性及扩展性强,实施性能优良,稳定性和可靠性良好等特点。其内核采用微内核结构,将基本功能(如进程管理,存储管理,中断处理)放在内核中,留给用户一个标准API函数,并根据各个任务的优先级分配CPU时间。交叉开发环境:交叉开发是指一个通用计算机上进行软件的编辑编译,然后下载到嵌入式设备中进行调试的开发方式,它通常采用宿主机/目标机模式。
第二章:
RISC是精简指令集
精简指令集体系结构的优点:硬连线的指令译码逻辑,便于流水线执行,大多数RISC指令为单周期执行。
精简指令集处理器的优点:处理器关心面积小,开发时间缩短,开发成本降低,容易实现高性能,低成本的处理器。
精简指令集体系结构缺点:与CISC相比,通常RISC的代码密度低;RISC不能执行x86代码;RISC给优化编译程序带来了困难
ARM设计采用的RISC技术特征主要有:Load/Store体系结构,固定的32位指令,3地址指令格式。
ARM7TDM名称具体含义:ARM7:32位ARM体系结构4T版本;T:Thumb16位压缩指令集;D:支持片上Debug,使处理器能够停止以响应调试请求;M:增强型Multiplier,与前代相比具有较高的性能且产生64位的结果。I:EmbeddedICE硬件以支持片上断点和观察点。ARM7 3级流水线:(取指级,译码级,执行级)ARM9TDMI 流水线操作:(取指,译码,执行,缓冲/数据,回写)5级 ARM处理器核可工作两种状态:ARM状态和Thumb状态
从ARM进入Thumb状态,当操作数寄存器Rm的状态位bit[0]为1时,执行“BX Rm”指令进入Thumb状态
从Thumb进入ARM状态,当操作数寄存器Rm的状态位bit[0]为0时,执行“BX Rm”指令进入ARM状态
ARM处理器工作模式(共7种):除用户模式外的其他六种模式称为特权模式。特权模式:主要处理异常和监控调用(有时也称为软件中断),他们可以自由地访问系统资源和切换模式
ARM处理器总共有37个寄存器,均为32位 ARM状态下的通用寄存器分为3类: 未分组寄存器:R0~~R7(为公用寄存器)
分组寄存器:R8~~R14
R13通常用于堆栈指针SP
R14用做子程序链接寄存器
程序计数器:R15(PC)
用做程序计数器
ARM程序状态寄存器中
条件码标志(N Z C V)
N——在结果是带符号的二进制补码的情况下,结果为负,N=1 否则为0 Z——结果为0 Z=1 否则为0 C——针对加法:产生进位
C=1 否则为0
针对减法:产生借位
C=0 否则为1
针对有移位操作的非加减法指令
C为移位操作中最后移出位的值
对于其他指令
C通常不变
V——对于加减法指令
操作数和结果为带符号的整数时,产生溢出
V=1 否则为0
对于其他指令
V通常不发生变化 ARM的异常中断响应过程: 一:将CPSR的内容保存到将要执行的异常中断对应的SPSR中,以实现对处理器当前状态,中断屏蔽字以及各条件标志位的保存。二:设置当前状态寄存CPSR中的相应位:
设置CPSR模式控制位CPSR[4:0],使处理器进入相应的执行模式
当进入Reset或FIQ模式时,还要设置中断标志位(CPSR[6]=1)禁止FIQ中断,否则其值不变
设置中断标志位(CPSR[7]=1),禁止IRQ中断
三:将寄存器LR-
四:给程序计数器PC强制赋值,使程序从相应的向量地址开始执行中断处理程序。
非向量中断和中断向量的区别和联系
异常中断的优先级:复位(最高),数据异常中断,FIQ,IRQ,取值指异常中止,SWI未定义指令
ARM支持的数据类型(6种):8位有符号和无符号字节
16位有符号和无符号半字,以2字节的边界定位
32位有符号和无符号半字,以4字节的边界定位
ARM存储器组织:以字节为单位寻址的存储器中有“小端”和“大端”两种方式存储字 小端格式:较高的有效字节存放在较高的存储器地址,较低的有效字节存放在较低的存储器地址
大端格式:较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址
ARM处理器能方便地配置为其中任何一种存储器方式,但他们的缺省设置为小端格式(71页有题)
ARM7TDM内核的重要特性:53页最上面
第三章:
指令分类中基本指令格式
S
可选后缀,若指定S,则根据指令执行结果更新CPSR中的条件码 ARM寻址方式
立即寻址有选择题
寄存器间接寻址:ARM的数据传送指令都是基于寄存器间接寻址,即通过Load/Store完成对数据的传送操作
103页举例
可能为考题
伪操作
是ARM汇编语言程序里的一些特殊指令助记符,它的作用主要是为完成汇编程序做各种准备,在源程序进行汇编时由汇编程序处理,而不是在计算机运行期间由机器执行 ARM嵌入式系统程序设计可以分为ARM汇编语言程序设计、嵌入式C语言程序设计以及C语言与汇编语言的混合编程。
ARM汇编程序中
AREA指示符定义本程序段位代码段
即申请一个定义段 161页程序
可能考
嵌入式C语言程序设计中修饰符:interrupt、near、far、huge Interrupt在函数修饰为中断函数,没有输入和输出参数 第三章课后习题见李向妮笔记
第四章
DMA
I2C
I2S 基于S3C44B0X的最小系统设计:
嵌入式最小系统是指保证嵌入式微处理器可靠工作所必需的基本电路组成的系统,通常包括处理器单元、时钟单元、复位单元、、存储器单元、供电电源和调试接口。
基于ARM的嵌入式最小系统基本组成包括:基于ARM核的微处理器、电源电路、复位电路、时钟电路、存储器电路(FLASH和SDRAM)、UART接口电路和JTAG调试接口
第五章:
uC/OS—II采用的抢占式内核是一个真正的实时操作系统
uC/OS—II基本特点:源码开放;可移植性;可裁剪;抢占式内核;可扩展的多任务;可确定的执行时间;中断管理;稳定性和可靠性
uC/OS—II的文件结构(与内核功能相关的文件):任务管理;同步通信;内存管理;时间管理
uC/OS—II任务及其运行状态:
任务是一个简单的程序,对应于实际应用中的一个逻辑功能。对uC/OS—II来说,任务是系统运行的基本单元,系统以任务为单元分配内存资源和处理时间,每个任务都有自己独立的寄存器和栈空间。
任务看起来就像一个无限循环永不返回的函数,但是不同于函数的是,它有一套自己的内存空间,运行时完全占用处理器资源,在任意确定的时刻都处于休眠、就绪、运行、挂起以及中断服务这五种状态之一 图见书上337
第六章
uCLinux与标准Linux的最大区别就在于内存管理。标准Linux是针对有MMU的处理器设计的
uCLinux不使用虚拟内存管理技术,采用的是实存储器管理策略,也就是说uCLinux系统对内存的访问是直接的
uCLinux与标准Linux系统在进程的创建
进程的执行
进程的终止
上有着显著不同 基于uCLinux操作系统的应用开发环境一般是由目标系统硬件开发板和宿主PC机所构成。目标硬件开发板用于运行操作系统和系统应用软件,而目标板所用到的操作系统的内核编译、电子词典应用程序的开发和调试则需要通过宿主PC机来完成。目标板用来进行内核编译
PC机用来进行调试
移植就是使一个实时操作系统能够在某个微处理器平台上或者微控制器上运行。uCLinux移植包括3个层次的移植: 处理器结构层次移植、芯片层次移植、板级移植。
【智能小车嵌入式系统设计分析】推荐阅读:
智能电动小车设计08-31
智能控制小车设计04-17
智能小车控制器设计06-10
智能小车的设计与应用03-05
智能小车的设计与制作04-24
智能循迹小车设计论文12-25
基于51单片机的智能小车设计06-09
智能小车09-18
智能电动小车07-27
智能小车总结07-13