跳转到主要内容

嵌入式

嵌入式系统应用中的USB主设备功能分析

kelly /

USB已经成为设备和PC之间通信的标准方式,从通用设备(如闪存设备和鼠标)到专用设备,该标准几乎完全替代了其他的串行通信协议。

USB外围设备彼此之间不能相互通信,它们只能与具有控制总线能力的USB主设备通信。直到最近,也只有PC具有主设备能力。但目前,许多微控制器也具有了嵌入式USB主设备的功能,这使得嵌入式应用可以连接更加广泛的USB外围设备。

USB闪存驱动器是一种使用非常广泛的USB外围设备,它已经成为传递或存储大量数据的廉价介质,许多数据记录设备正是得益于它才得以发展。对于远程的长期数据记录,可以先采集,并存储在闪存驱动器中,然后带回到方便分析处理的地方。

闪存驱动器也可以用于向PC中传输高速时间相关数据。PC是极好的数据分析工具,但实时能力有限。相反,嵌入式应用特别适合实时数据采集,但数据分析能力通常很弱。嵌入式实时数据记录仪可以在闪存驱动器上存储数据,然后把数据传输到PC上分析,这样二者的优势都得到了充分的发挥。

<strong> 嵌入式USB主设备的应用</strong>

嵌入式ARM学习总结之LCD显示屏

kelly /

<strong>1、常用显示类型</strong>

1)数码管:0.7—1元 成本低,只能显示数字和字母

2)字符型液晶屏:LCD1602 15—25,显示数字和字母

3)点阵型黑白屏:LCD12864 50—90之间 可以显示汉字和图片

4)STN-LCD 彩屏 成本低 响应速度慢(刷新频率低),播放视频有拖尾现象

5)TFT—LCD 彩屏,主流

6)0LED 功耗低,无需背光 日本技术 今后主流

7)LED广告屏(一个一个LED组成)--成本高,耐用

<strong>2、点像素</strong>

1个点有多少种状态,多少种颜色

1bpp 1位 黑白屏 1bpp,1位每像 素

2bpp 2位 4种状态

4bpp 4位 16种状态

8bpp 8位 256种状态

16bpp 65536 假彩 16*16的一个汉字需要256个半字--512字节控制

24bpp 24位 真彩

概述十一种基于ARM的嵌入式操作系统

kelly /

嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。嵌入式操作系统是负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能,是一种用途广泛的系统软件。

嵌入式操作系统(Embedded Operation System,EOS)是指用于嵌入式系统的操作系统。嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。嵌入式操作系统是负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能,是一种用途广泛的系统软件。

<strong>嵌入式LINUX</strong>

嵌入式ARM学习总结之IIC

editor /

<strong>1、IIC---SDA、SCL</strong>

IIC协议 发明者 Philips公司 通过IIC芯片收取版权税

近距离通信

标准模式 100KBIT/s

快速模式 400K 常用 S3C2440使用

高速模式 3.4M

上拉电阻 10K 如果速度越快,上拉电阻越小,增加驱动能力

<strong>2、IIC读写过程</strong>

IIC读过程:

1)开始

2)写芯片地址

3)写芯片内部地址

4)将写变成读

5)读数据

6)结束

IIC写过程

1)开始

2)写芯片地址

3)写芯片内部地址

4)写数据

5)结束

嵌入式ARM学习总结之ARM相关知识

editor /

<strong>ARM常用编程软件</strong>

1) IAR For ARM

支持芯片多,代码优化也不错,操作方便

2) KEIL MDK4.12

keil公司2005年已经被ARM公司收购(现在常用)

3) ADS1.2

支持芯片到ARM11(不升级了,现在较少用,2005年ARM公司停止对它的更新),由KEIL公司为其做编译器

4) RVDS

功能最强,价格很高,使用较复杂

<strong>keil for ARM的一些设置要注意</strong>

keil里面镜像组成部分

RW:存放已初始化的全局变量

ZI:未初始化的全局变量

RO:代码

CODE:代码加常量的总和

<strong>CPU架构</strong>

X86--intel AMD ——PC 90% 大功耗,高性能

ARM--嵌入式领域76%,低功耗,高性能

MIPS——5% 超低功耗,高性能

C51

详析单片机、ARM、FPGA嵌入式的特点及区别

editor /

本文将详细分析单片机、ARM、FPGA嵌入式几者之间的特点及区别。

<strong>单片机的特点:</strong>

(1)受集成度限制,片内存储器容量较小,一般内ROM:8KB以下;

(2)内RAM:256KB以内。

(3)可靠性高

(4)易扩展

(5)控制功能强

(6)易于开发

<strong>ARM的特点:</strong>

(1) 自带廉价的程序存储器(FLASH)和非易失的数据存储器(EEPROM)。这些存储器可多次电擦写,使程序开发实验更加方便,工作更可靠。

(2) 高速度,低功耗。在和M51单片机外接相同晶振条件下,AVR单片机的工作速度是M51单片机的30-40倍;并且增加了休眠功能及CMOS技术,使其功耗远低于M51单片机。

(3) 工业级产品。具有大电流输出可直接驱动SSR和继电器,有看门狗定时器,防止程序走飞,从而提高了产品的抗干扰能力。

(4) 超功能精简指令,具有32个通用工作寄存器,相当于M51单片机中32个累加器!从而克服了单一累加器工作的瓶颈效应。

μC/OS-III中的高效时钟节拍管理机制

editor /

<strong>引言</strong>

在嵌入式实时操作系统(RTOS)中,任务可通过调用延时函数(比如μC/OS中的OSTimeDly() 函数)将自己延时挂起一段时间。任务在延时的过程中会释放CPU使用权,也就是说,延时的任务不占用宝贵的CPU资源。延时的任务由时钟节拍服务跟踪管理。当任务延时结束并准备运行时,时钟节拍服务会使该任务恢复运行。时钟节拍服务定期运行,其运行由周期的时钟节拍中断触发,而时钟节拍中断可由硬件定时器产生。

在μC/OS—III中,时钟节拍服务是在时钟节拍中断服务程序中完成的,每次时钟节拍服务都会遍历整个任务链表,递减所有延时任务的延时计数器。当任务数目较多时,时钟节拍服务处理时间很长,会造成中断延迟时间和任务延迟时间都变得很长,影响系统的实时性。

在μC/OS—III中,时钟节拍服务不再在时钟节拍中断服务程序中完成,而是放到一个时钟节拍任务中完成。而且,通过采用啥希散列表机制来管理延时任务,每次时钟节拍服务只需要处理极少数的延时任务,从而大大减少了时钟节拍服务花费的时间,提高了系统的实时性。

嵌入式时代已经来临,你还在等什么?

editor /

最近经常有用人单位打来电话,问有没有嵌入式Linux方面的开发人员,他们说他们单位急需要懂得在嵌入式linux环境下的软件开发人员。现在每年毕业的大学生那么多,还招不到合适的软件开发人员吗?他说,毕业大学生虽然多,但大部分都能力不够,不能达到他们的工作的要求。

该公司HR的一句话说出来我们现在的大学教学和大学生就业的现状:一方面每年那么多大学生毕业找不到合适的工作,另一方面很多用人单位和企业又找不到合适的人才。造成这种现象最基本的原因是学校教育和社会需求的严重节。很多嵌入式专业的学生在毕业后,还是很难达到用人单位的要求最主要的原因在于高校在嵌入式教学方面重理论和轻实践,很多嵌入式专业的老师也没有实际的工作经验,这样培养出的学生可能让他讲起来头头是道,但是让他去真正编写,调试一个应用程序就傻眼了,不知道从何下手,因为他们在学校的学习可能从来就没有老师带着他们实际调试过嵌入式程序,也没有机会让你去调试嵌入式应用程序,那些看起来非常不错的嵌入式实验箱大部分时间都躺在实验室睡大觉,只有在上实验课的时候搬出来让大家看2眼,摸2下,还没有弄明白怎么回事,又要收到实验室睡大觉去了。这样的教学模式,如何能培养出一名合格的嵌入式工程师呢?出现企业找不到合适的人,大学毕业生找不到合适的工作也就不奇怪了。

学习嵌入式设计的十三个重要法则

kelly /

通过实践、整理、分析,将自己在学习嵌入式开发过程中所总结的一些嵌入式法则、整理如下以供大家参考:

<strong> 1、资源有限性法则</strong>

嵌入式计算不仅需要网络快速、一致的计算,而且也要求系统能够井然有序地将其执行代码和数据,存储在一个“ 共同” 的“ 狭小” 的空间内。

<strong> 2、鲁棒性法则</strong>

嵌入式计算不仅要求系统迅速而有效的计算,而且还要求在某些计算单元出现错误的时候,系统仍然能够继续正常运行工作。

<strong> 3、实时性法则</strong>

嵌入式系统的计算结果,不仅依赖于系统的逻辑运算之正确性,而且也依赖于这个运算结果的计算时间。

<strong> 4、 冗余度法则</strong>

在嵌入式系统具有足够的冗余度之后,系统的“ 初始敏感性” 对于其“ 最终计算结果” 的影响就变得微乎其微了。

<strong> 5、 结构性法则</strong>

【好文分享】如何从零开始开发一款嵌入式产品

kelly /

首先,如果你有幸看到这篇文章,千万不要试图在2个小时内阅读完,就算你2个小时阅读完,我相信你也不会理解里面讲解的精华之处,我相信,你应该将此文章慢慢品尝,这绝对是一篇需要品尝2~3天,再结合自己过往的经验,加上自己的思考,我相信会对你不仅仅是技术能力,甚至包括整体的思维方式都会有一个非常大的提高。
  
我写这篇文章的目的,是用本人20年的嵌入式经验呈现给大家一副完整的产品,项目开发蓝图,用本人多年的经历总结了一些教训,无私的分享给各位,希望各位今后能站在本人的肩膀之上,少走弯路,多为公司,为个人多做贡献,那我的愿望就达到了,也同时希望能看到大家反馈和回复,留个脚印,留下你的见解和智慧,为后人乘凉打点基础,先在这谢谢各位了。
  
那么由此开始我们充满知识的旅程吧,最重要的一点,就是在一个产品或项目的开发过程中,如果没有明确的目标,那么成功将无从谈起,做任何事的第一步必须明确目标。
  
与日常生活中的大多数事务一样,设计一个嵌入式产品的过程也必须从确定目标开始,对生产的产品进行明确定义。对产品进行定义主要是对产品是什么和能有什么功能进行描述,其次是在我们的整个开发过程中,应该要撰写一些开发文档,大概的框架的如下:

1)产品需求文档:描述产品的特性