嵌入式LINUX 电子教程全集 嵌入式系统出现于60年代晚期,它最初被用于控制机电电话交换机,如今已被广泛的应用于工业制造、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等众多领域。计算机系统核心CPU,每年在全球范围内的产量大概在二十亿颗左右,其中超过80%应用于各类专用性很强的嵌入式系统。一般的说,凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。 1. 嵌入式Linux系统就是利用Linux其自身的许多特点,把它应用到嵌入式系统里。 Linux做嵌入式的优势,首先,Linux是开放源代码的,不存在黑箱技术,遍布全球的众多Linux爱好者又是Linux开发者的强大技术支持;其次,Linux的内核小、效率高,内核的更新速度很快,linux是可以定制的,其系统内核最小只有约134KB。第三,Linux是免费的OS,在价格上极具竞争力。 Linux还有着嵌入式操作系统所需要的很多特色,突出的就是Linux适应于多种CPU和多种硬件平台,是一个跨平台的系统。到目前为止,它可以支持二三十种CPU。而且性能稳定,裁剪性很好,开发和使用都很容易。很多CPU包括家电业芯片,都开始做Linux的平台移植工作。移植的速度远远超过Java的开发环境。也就是说,如果今天用Linux环境开发产品,那么将来换CPU就不会遇到困扰。同时,Linux内核的结构在网络方面是非常完整的,Linux对网络中最常用的TCP/IP协议有最完备的支持。提供了包括十兆、百兆、千兆的以太网络,以及无线网络,Toker ring(令牌环网)、光纤甚至卫星的支持。所以Linux很适于做信息家电的开发。 还有使用Linux为的是来开发无线连接产品的开发者越来越多。Linux在快速增长的无线连接应用主场中有一个非常重要的优势,就是有足够快的开发速度。这是因为LInux有很多工具,并且Linux为众多程序员所熟悉。因此,我们要在嵌入式系统中使用Linux操作系统。 Linux的大小适合嵌入式操作系统——Linux固有的模块性,适应性和可配置性,使得这很容易做到。另外,Linux源码的实用性和成千上万的程序员热切其望它用于无数的嵌入式应用软件中,导致很多嵌入式Linux的出现,包括:Embedix,ETLinux,LEM,Linux Router Project,LOAF,uCLinux,muLinux,ThinLinux,FirePlug,Linux和PizzaBox Linux 相对,Linux的图形界面还相对较弱,但近年Linux的图形界面发展也很快,这也就不是问题。 2. 什么是嵌入式Linux 嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。嵌入式linux既继承了Interlnet上无限的开放源代码资源,又具有嵌入式操作系统的特性。嵌入式Linux的特点是版权费免费;购买费用媒介成本技术支持全世界的自由软件开发者提供支持网络特性免费,而且性能优异,软件移植容易,代码开放,有许多应用软件支持,应用产品开发周期短,新产品上市迅速,因为有许多公开的代码可以参考和移植,实时性能RT_Linux Hardhat Linux 等嵌入式Linux支持,实时性能稳定性好安全性好。 3. 嵌入式Linux有巨大的市场前景和商业机会,出现了大量的专业公司和产品,如Montavista Lineo Emi等,有行业协会如Embedded Linux Consortum等,得到世界著名计算机公司和OEM板级厂商的支持,例如IBM Motorola Intel等。传统的嵌入式系统厂商也采用了Linux策略,如Lynxworks Windriver QNX等,还有Internet上的大量嵌入式Linux爱好者的支持。嵌入式Linux支持几乎所有的嵌入式CPU和被移植到几乎所有的嵌入式OEM板。 4.嵌入式Linux的应用领域非常广泛,主要的应用领域有信息家电、PDA 、机顶盒、Digital Telephone、Answering Machine、Screen Phone 、数据网络、Ethernet Switches、Router、Bridge、Hub、Remote access servers、ATM、Frame relay 、远程通信、医疗电子、交通运输计算机外设、工业控制、航空航天领域等。 5.如果分别让10位工程师给出嵌入式系统的定义,将得到10个不同的答案。一般来说,大部分的嵌入式系统执行特定的任务。我们假定最简单的嵌入式系统包括输入/输出功能,以及一些控制逻辑,该系统基于它的配置执行某些类型的功能。按照这个标准,可以认为一个包含实现控制逻辑74123计数器以及一个状态是一个嵌入式系统。也许可以补充说,该系统必须可通过存储在固件中的软件进行编程。这个新的嵌入式系统定义包括输入/输出(I/O),以及存储在系统固件中的控制逻辑。一个带有鼠标、键盘、网络连接并运行图形用户界面(GUI,graphical user interface)多任务操作系统的桌面计算机显然满足这些要求,但我们能认为它是一个嵌入式系统吗? 如果桌面计算机不是一个嵌入式系统,那么手持设备呢?它们有I/O功能,可以运行存储在固件中的控制逻辑。有人说,桌面计算机和手持设备都有通用计算机设备,可以运行软件来执行许多不同的任务,与之不同的是,嵌入式系统(例如,洗碗机控制器或飞行导航系统)主要是为特定任务而设计的。这种特定的功能限定使嵌入式设备有功能上的唯一性。如果是这样,为什么一些嵌入式系统设计成具有附加的功能,如存储在非易失性存储器中的程序,并且具有运行可以完成原始设计范围之外的任务的多任务操作系统的能力呢? 在过去,区分嵌入式系统和通用计算机比现在简单的多。例如,可以很容易地区分出一个基于8051的T1分幅卡嵌入式系统和一台Sun UNIX工作站。而现在,从功能方面很难区分一台Sun工作站和一个包含PowerPC以及32MB内存和16MB闪存的机顶盒。这样的机顶盒可以运行带GUI的多任务操作系统,可现场升级,可以同时运行多个程序(如视频控制器、数字录像和Java虚拟机),还可以进行安全的因特网在线交易。很难判断这种机顶盒是否是一个嵌入式系统。显然,硬件性能的提升和价格的下降使通用计算机和嵌入式系统之间的界限变得很模糊,技术的进步使得我们很难定义什么是嵌入式。
上传时间: 2014-12-30
上传用户:ljt101007
一篇长90页的PPT和10个左右的示例源程序,对于自学能力强且有一定计算机编程基础的人来说上手还是很快的。 •Understand the components of a Virtual Instrument •Introduce labview and common labview functions •Build a simple data acquisition application •Create a subroutine in labview
上传时间: 2013-11-21
上传用户:yeling1919
随着卫星导航系统在军事上的广泛应用,研究导航系统的抗干扰技术已经成为当务之急。文中创新的将跳时技术与现有导航系统相结合,提出基于直扩/跳时(DS/TH)混合扩频的导航卫星系统方案。并分别在4种卫星导航干扰模式下,对此方案进行了抗干扰性能仿真及分析。结果表明在信噪比为-33 dB误码率为10-4时,该方案抗干扰性能比传统导航信号至少提高17 dB,尤其对于抗脉冲干扰,其性能可以改善20 dB左右。
上传时间: 2013-11-23
上传用户:GeekyGeek
为满足无线网络技术具有低功耗、节点体积小、网络容量大、网络传输可靠等技术要求,设计了一种以MSP430单片机和CC2420射频收发器组成的无线传感节点。通过分析其节点组成,提出了ZigBee技术中的几种网络拓扑形式,并研究了ZigBee路由算法。针对不同的传输要求形式选用不同的网络拓扑形式可以尽大可能地减少系统成本。同时针对不同网络选用正确的ZigBee路由算法有效地减少了网络能量消耗,提高了系统的可靠性。应用试验表明,采用ZigBee方式通信可以提高传输速率且覆盖范围大,与传统的有线通信方式相比可以节约40%左右的成本。 Abstract: To improve the proposed technical requirements such as low-ower, small nodes, large capacity and reliable network transmission, wireless sensor nodes based on MSP430 MCU and CC2420 RF transceiver were designed. This paper provided network topology of ZigBee technology by analysing the component of the nodes and researched ZigBee routing algorithm. Aiming at different requirements of transmission mode to choose the different network topologies form can most likely reduce the system cost. And aiming at different network to choose the correct ZigBee routing algorithm can effectively reduced the network energy consumption and improved the reliability of the system. Results show that the communication which used ZigBee mode can improve the transmission rate, cover more area and reduce 40% cost compared with traditional wired communications mode.
上传时间: 2013-10-09
上传用户:robter
1、高温薄膜滤波器技术(围墙技术) 大规模集成电路,等效50阶带通滤波器,在接近-200℃左右工作,导体电阻接近0欧姆,带通滤波器的品质因素Qu为100,000,是普通腔体滤波器品质因素Qu的20倍。有效抑制带外干扰和进入带内的高阶互调。 2、高性能的射频电路技术 低温低噪声放大器具有高增益(12dB)低噪声系数(<0.5dB)的高性能,增益平坦度小于0.04dB,有效地压低底噪声,放大有用 信号。 比现网用的TMA和LNA的噪声系数好3.5dB左右。世界尖端的制冷机技术,奶瓶大的氦制冷机,无需加冷冻液,可连续可靠地工作几十年。其冷端温度达77°K或-196.15°C。
上传时间: 2013-11-07
上传用户:brain kung
ZigBee技术是一种应用于短距离范围内,低传输数据速率下的各种电子设备之间的无线通信技术。ZigBee名字来源于蜂群使用的赖以生存和发展的通信方式,蜜蜂通过跳ZigZag形状的舞蹈来通知发现的新食物源的位置、距离和方向等信息,以此作为新一代无线通讯技术的名称。ZigBee过去又称为“HomeRF Lite”、“RF-EasyLink”或“FireFly”无线电技术,目前统一称为ZigBee技术。 2、ZigBee技术的特点 自从马可尼发明无线电以来,无线通信技术一直向着不断提高数据速率和传输距离的方向发展。例如:广域网范围内的第三代移动通信网络(3G)目的在于提供多媒体无线服务,局域网范围内的标准从IEEE802.11的1Mbit/s到IEEE802.11g的54Mbit/s的数据速率。而当前得到广泛研究的ZigBee技术则致力于提供一种廉价的固定、便携或者移动设备使用的极低复杂度、成本和功耗的低速率无线通信技术。这种无线通信技术具有如下特点: 功耗低:工作模式情况下,ZigBee技术传输速率低,传输数据量很小,因此信号的收发时间很短,其次在非工作模式时,ZigBee节点处于休眠模式。设备搜索时延一般为30ms,休眠激活时延为15ms,活动设备信道接入时延为15ms。由于工作时间较短、收发信息功耗较低且采用了休眠模式,使得ZigBee节点非常省电,ZigBee节点的电池工作时间可以长达6个月到2年左右。同时,由于电池时间取决于很多因素,例如:电池种类、容量和应用场合,ZigBee技术在协议上对电池使用也作了优化。对于典型应用,碱性电池可以使用数年,对于某些工作时间和总时间(工作时间+休眠时间)之比小于1%的情况,电池的寿命甚至可以超过10年。 数据传输可靠:ZigBee的媒体接入控制层(MAC层)采用talk-when-ready的碰撞避免机制。在这种完全确认的数据传输机制下,当有数据传送需求时则立刻传送,发送的每个数据包都必须等待接收方的确认信息,并进行确认信息回复,若没有得到确认信息的回复就表示发生了碰撞,将再传一次,采用这种方法可以提高系统信息传输的可靠性。同时为需要固定带宽的通信业务预留了专用时隙,避免了发送数据时的竞争和冲突。同时ZigBee针对时延敏感的应用做了优化,通信时延和休眠状态激活的时延都非常短。 网络容量大:ZigBee低速率、低功耗和短距离传输的特点使它非常适宜支持简单器件。ZigBee定义了两种器件:全功能器件(FFD)和简化功能器件(RFD)。对全功能器件,要求它支持所有的49个基本参数。而对简化功能器件,在最小配置时只要求它支持38个基本参数。一个全功能器件可以与简化功能器件和其他全功能器件通话,可以按3种方式工作,分别为:个域网协调器、协调器或器件。而简化功能器件只能与全功能器件通话,仅用于非常简单的应用。一个ZigBee的网络最多包括有255个ZigBee网路节点,其中一个是主控(Master)设备,其余则是从属(Slave)设备。若是通过网络协调器(Network Coordinator),整个网络最多可以支持超过64000个ZigBee网路节点,再加上各个Network Coordinator可互相连接,整个ZigBee网络节点的数目将十分可观。 兼容性:ZigBee技术与现有的控制网络标准无缝集成。通过网络协调器(Coordinator)自动建立网络,采用载波侦听/冲突检测(CSMA-CA)方式进行信道接入。为了可靠传递,还提供全握手协议。
标签: zigbee
上传时间: 2013-11-24
上传用户:siguazgb
注:1.这篇文章断断续续写了很久,画图技术也不精,难免错漏,大家凑合看.有问题可以留言. 2.论坛排版把我的代码缩进全弄没了,大家将代码粘贴到arduino编译器,然后按ctrl+T重新格式化代码格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脉宽调制波,通过调整输出信号占空比,从而达到改 变输出平均电压的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 个8 位精度PWM 引脚,分别是3, 5, 6, 9, 10, 11 脚。我们可以使用analogWrite()控 制PWM 脚输出频率大概在500Hz 的左右的PWM 调制波。分辨率8 位即2 的8 次方等于 256 级精度。但是有时候我们会觉得6 个PWM 引脚不够用。比如我们做一个10 路灯调光, 就需要有10 个PWM 脚。Arduino Duemilanove 2009 有13 个数字输出脚,如果它们都可以 PWM 的话,就能满足条件了。于是本文介绍用软件模拟PWM。 二、Arduino 软件模拟PWM Arduino PWM 调压原理:PWM 有好几种方法。而Arduino 因为电源和实现难度限制,一般 使用周期恒定,占空比变化的单极性PWM。 通过调整一个周期里面输出脚高/低电平的时间比(即是占空比)去获得给一个用电器不同 的平均功率。 如图所示,假设PWM 波形周期1ms(即1kHz),分辨率1000 级。那么需要一个信号时间 精度1ms/1000=1us 的信号源,即1MHz。所以说,PWM 的实现难点在于需要使用很高频的 信号源,才能获得快速与高精度。下面先由一个简单的PWM 程序开始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 这是一个软件PWM 控制Arduino D13 引脚的例子。只需要一块Arduino 即可测试此代码。 程序解析:由for 循环可以看出,完成一个PWM 周期,共循环255 次。 假设bright=100 时候,在第0~100 次循环中,i 等于1 到99 均小于bright,于是输出PWMPin 高电平; 然后第100 到255 次循环里面,i 等于100~255 大于bright,于是输出PWMPin 低电平。无 论输出高低电平都保持30us。 那么说,如果bright=100 的话,就有100 次循环是高电平,155 次循环是低电平。 如果忽略指令执行时间的话,这次的PWM 波形占空比为100/255,如果调整bright 的值, 就能改变接在D13 的LED 的亮度。 这里设置了每次for 循环之后,将bright 加一,并且当bright 加到255 时归0。所以,我们 看到的最终效果就是LED 慢慢变亮,到顶之后然后突然暗回去重新变亮。 这是最基本的PWM 方法,也应该是大家想的比较多的想法。 然后介绍一个简单一点的。思维风格完全不同。不过对于驱动一个LED 来说,效果与上面 的程序一样。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,这段代码少了一个For 循环。它先输出一个高电平,然后维持(bright*30)us。然 后输出一个低电平,维持时间((255-bright)*30)us。这样两次高低就能完成一个PWM 周期。 分辨率也是255。 三、多引脚PWM Arduino 本身已有PWM 引脚并且运行起来不占CPU 时间,所以软件模拟一个引脚的PWM 完全没有实用意义。我们软件模拟的价值在于:他能将任意的数字IO 口变成PWM 引脚。 当一片Arduino 要同时控制多个PWM,并且没有其他重任务的时候,就要用软件PWM 了。 多引脚PWM 有一种下面的方式: int brights[14] = {0}; //定义14个引脚的初始亮度,可以随意设置 int StartPWMPin = 0, EndPWMPin = 13; //设置D0~D13为PWM 引脚 int PWMResolution = 255; //设置PWM 占空比分辨率 void setup() { //定义所有IO 端输出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //随便定义个初始亮度,便于观察 brights[ i ] = random(0, 255); } } void loop() { //这for 循环是为14盏灯做渐亮的。每次Arduino loop()循环, //brights 自增一次。直到brights=255时候,将brights 置零重新计数。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是计数一个PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每个PWM 周期均遍历所有引脚 { if(i < brights[j])\ 所以我们要更改PWM 周期的话,我们将精度(代码里面的变量:PWMResolution)降低就行,比如一般调整LED 亮度的话,我们用64 级精度就行。这样速度就是2x32x64=4ms。就不会闪了。
上传时间: 2013-10-08
上传用户:dingdingcandy
超声波传感器适用于对大幅的平面进行静止测距。普通的超声波传感器测距范围大概是 2cm~450cm,分辨率3mm(淘宝卖家说的,笔者测试环境没那么好,个人实测比较稳定的 距离10cm~2m 左右,超过此距离就经常有偶然不准确的情况发生了,当然不排除笔者技术 问题。) 测试对象是淘宝上面最便宜的SRF-04 超声波传感器,有四个脚:5v 电源脚(Vcc),触发控制端(Trig),接收端(Echo),地端(GND) 附:SRF 系列超声波传感器参数比较 模块工作原理: 采用IO 触发测距,给至少10us 的高电平信号; 模块自动发送8个40KHz 的方波,自动检测是否有信号返回; 有信号返回,通过IO 输出一高电平,高电平持续的时间就是超声波从发射到返回的时间.测试距离=(高电平时间*声速(340m/s))/2; 电路连接方法 Arduino 程序例子: constintTrigPin = 2; constintEchoPin = 3; floatcm; voidsetup() { Serial.begin(9600); pinMode(TrigPin, OUTPUT); pinMode(EchoPin, INPUT); } voidloop() { digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin delayMicroseconds(2); digitalWrite(TrigPin, HIGH); delayMicroseconds(10); digitalWrite(TrigPin, LOW); cm = pulseIn(EchoPin, HIGH) / 58.0; //将回波时间换算成cm cm = (int(cm * 100.0)) / 100.0; //保留两位小数 Serial.print(cm); Serial.print("cm"); Serial.println(); delay(1000); }
上传时间: 2013-10-18
上传用户:星仔
LCD仿真器是一种电子产品的辅助开发工具。目前LCD(液晶屏)在各种电子产品的使用越来越广泛,开发人员在开发带LCD的产品时会用到各种各样的LCD,这些LCD或是现有的,或是定制,现有的LCD不一定能完全满足设计需要,定制LCD需要时间,需要资金,做好后还有修改的可能性,造成不必要的浪费。传统的做法是用LED(发光管)+驱动电路来仿真LCD,其弊端有四,一、电路复杂,功耗大,100多点的LCD电流将达1A左右。二、图案逼真性差,不直观。三、制作、修改困难,灵活性差。四、通用性不强。 LCD仿真器完全克服了以上存在的问题,她采用软硬件结合的方法,充分发挥软件在作图、运算方面的优势,使仿真的图案与目标LCD图案完全一致,仿真LCD特性与目标LCD特性几乎一样,并提供强大的LCD图形编辑工具,对于不同的LCD产品,LCD仿真器硬件不必更换,只需制作不同的LCD图案,她的灵活性、通用性将是您开发LCD产品的理想选择。 LCD仿真器由采样板、仿真软件和LCD图形编辑软件组成,采样板通过USB口与PC机通信。 LCD仿真器可以方便地与HT1621、Winbond、SAMSUNG,中颖、十速HOLTEK、义隆等带LCD DRIVER的单片机连接。
上传时间: 2013-11-06
上传用户:行者Xin
PCB设计要点 一.PCB工艺限制 1)线 一般情况下,线与线之间和线与焊盘之间的距离大于等于13mil,实际应用中,条件允许时应考虑加大距离;布线密度较高时,可考虑但不建议采用IC脚间走两根线,线的宽度为10mil,线间距不小于10mil。特殊情况下,当器件管脚较密,宽度较窄时,可按适当减小线宽和线间距。 2)焊盘 焊盘与过渡孔的基本要求是:盘的直径比孔的直径要大于0.6mm;例如,通用插脚式电阻、电容和集成电路等,采用盘/孔尺寸 1.6mm/0.8mm(63mil/32mil),插座、插针和二极管1N4007等,采用1.8mm/1.0mm(71mil/39mil)。实际应用中,应根据实际元件的尺寸来定,有条件时,可适当加大焊盘尺寸;PCB板上设计的元件安装孔径应比元件管脚的实际尺寸大0.2~0.4mm左右。 3)过孔 一般为1.27mm/0.7mm(50mil/28mil);当布线密度较高时,过孔尺寸可适当减小,但不宜过小,可考虑采用1.0mm/0.6mm(40mil/24mil)。 二.网表的作用 网表是连接电气原理图和PCB板的桥梁。是对电气原理图中各元件之间电气连接的定义,是从图形化的原理图中提炼出来的元件连接网络的文字表达形式。在PCB制作中加载网络表,可以自动得到与原理图中完全相
标签: PCB
上传时间: 2013-10-11
上传用户:13817753084