您的位置:首页 > 其它

单板机选型指南

2013-05-17 20:36 609 查看
【简介】

单板机,将计算机的各个部分都组装在一块印制电路板上,包括微处理器/存储器/输入输出接口,还有简单的七段发光二极管显示器、小键盘、插座等其他外部设备。功能比单片机强,适于进行生产过程的控制。可以直接在实验板上操作,适用于教学。全亚公司于1977年在台湾推出以 Z80 为中央处理器的单板微电脑学习机,型号 EDU-80。
早期的微型计算机的典型组成是
6 个(或更多)电路板--插入一个底板内--执行中央处理器单元(CPU)、内存、磁盘控制器和串行/并行端口功能。这些基于底板的微型计算机被用来获取数据、进程控制和R&D计划,但是通常体积太大,以至于不能被用做设备内的智能嵌入式
【特点】

单板机与单片机最大的不同在于系统组成。

  单板机是把微型计算机的整个功能体系电路(CPU、ROM、RAM、输入/输出接口电路以及其他辅助电路)全部组装在一块印制电板上,再用印制电路将各个功能芯片连接起来。

  单片机就是一块集成电路芯片上集成有CPU、程序存储器、数据存储器、输入/输出接口电路、定时/计数器、中断控制器、模/数转换器、数/模转换器、调制解调器等部件。单片机由于体积小,成本低等特点,大量用于生活设备现代化中。像我们日常生活中的智能电器,汽车等。
【发展历程】

在80年代早期,集成电路(IC)技术的出现,极大的缩小了计算机的体积,使其向微型化方向发展,以前占用整个电路板的功能可以被集成到单个"大比例集成"(LSI)逻辑芯片中。CPU、内存、存储器和串行/并行端口的LSI芯片现在可在单板上实际执行整个微型计算机系统--没有底板。基于
Z80 的"大板"(1980年)或许是第一个这样的单板机(SBC),它能够运行商业磁盘操作系统(CP/M)。
1.嵌入式单板机市场

  与大板相似,"小板"(1983年Ampro)使用 Z80 CPU,目标在于运行 CP/M 操作系统。但是它的尺寸小得多,匹配软盘驱动器(5.75
x 8.0)的脚本打印。由于它独特的紧密结合、简单、可靠和低成本,小板适用于商业应用,磁盘操作系统可简单地直接嵌入非他们的计算机的设备中。因此就产生了嵌入式单板机市场,它现在已经挤满了成百上千的单板机制造商,针对不同的嵌入式和专门计算应用生产成千上万的不同单板机产品。

  最初,每个单板机产品都是完全独特的--包括结构和形态上。这很大程度上归咎于嵌入式系统需求的内在差异,结合了各种处理器和可获得的外设控制器。此外,没有标准来影响单板机开发者的功能选择和机械规格。
2.与PC兼容的单板机产生

  到了80年代中期,人们越来越感兴趣在嵌入式和其他非桌面应用中的IBM
PC兼容性,因为两个关键因素:

  硬件杠杆 - PC芯片集和外设良好的兼容性可以产生更低成本、更简单和更容易支持的系统;

  软件杠杆 - PC兼容性使得可以利用PC的操作系统(首先是MS-DOS,然后是Windows)、语言、工具和应用软件。

  其中一些因此产生的PC兼容的微型计算机是基于IBM
PC("ISA"总线)插件卡的形态因素的。一些则作为独立系统(无底板)在单板上执行。还有一些适应流行业界底板总线(STD, VME)。

  在嵌入式无底板单板机的情况下,PC兼容性很快成为一种趋势。多数人也同意几种流行的形态因素:

  1)小板(5.75 x 8.0 in.) - 单个紧凑板上的完整系统,可扩展插入功能模块
  2)ISA "插槽板" (全长13.8 x 4.8in ; 半长7.1 x 4.8 in ) -- IBM PC插件卡版式的单板机(面向底板)可以作为独立单板机运行(无底板)

  3)PC/104模块(3.6 x 3.8 in.) - 紧凑的、高低不平的、自堆模块有可靠的针和插座板到板扩展总线
【FPU】

FPU:(Float Point Unit,浮点运算单元)FPU是专用于浮点运算的处理器,以前的FPU是一种单独芯片,在486之后,英特尔把FPU集成在CPU之内。
浮点运算器(英文:floating
point unit,简称FPU)是计算机系统的一部分,它是专门用来进行浮点数运算的。典型的运算有加减乘除和开方。一些系统(尤其是比较老的,基于微代码体系的)还可以计算超越函数,例如指数函数或者三角函数,尽管对大多数现在的处理器,这些功能都由软件的函数库完成。
  在大多数现在的通用计算机架构中,一个或多个浮点运算器会被集成在CPU(Central
Processing Unit,中央处理器)中,但许多嵌入式处理器(特别是比较老的)没有在硬件上支持浮点数运算。
  在过去,一些系统通过协同处理器而不在同一个处理器中来处理浮点数。在微型计算机时代,这一般只用一个芯片;而在以前,可能要用一整个电路板甚至一台机箱。
  不是所有的计算机架构中都有硬件的浮点运算器。在没有硬件浮点运算器的情况下,许多浮点数的运算也可以像有硬件那样做到。这样可以节省浮点运算器的硬件成本,但这样会使计算变得慢得多。仿硬件浮点运算可以通过多种层次的方法实现——在CPU中用微代码处理,用操作系统的函数处理,用用户自己的代码处理。
  在大多数现代计算机的架构中,一些浮点数运算跟整数运算是分开的。这些分别在不同的架构上差别很大。有一些架构,例如英特尔(Intel)的x86处理器设计了浮点数寄存器,另一些架构中,处理浮点数甚至有独立的时频时域。
  浮点数运算常常是用特别的总线传输的。在早期的没有中断机制的大尺度架构(的处理器)中,浮点运算有时与整数运算独立传输。今时今日,许多CPU或架构都有超过一个浮点运算器,例如PowerPC
970 和基于Netburst和AMD64架构的处理器(分别例如奔腾(Pentium)4和速龙(Athlon)64)。
  当CPU执行一个需要浮点数运算的程序时,有三种方式可以执行:软件仿真器(浮点运算函数库)、附加浮点运算器和集成浮点运算器。多数现在的计算机有集成的浮点运算器硬件。
【L2 Cache】

L2 CACHE=二级缓存 它是处理器内部的一些缓冲存储器,其作用跟内存一样。
大量使用二级缓存带来的结果是处理器运行效率的提升和成本价格的大幅度不等比提升。
上个世纪80年代,由于处理器的运行速度越来越快,慢慢地处理器需要从内存中读取数据的速度需求就越来越高了。然而内存的速度提升却很缓慢,而能高速读写数据的内存价格又非常高昂,不能大量采用。从性能价格比的角度出发,英特尔等处理器设计生产公司想到一个办法,就是用少量的高速内存和大量的低速内存结合使用,共同为处理器提供数据。这样就兼顾了性能和使用成本的最优。而那些高速的内存因为是处于CPU和内存之间的位置,又是临时存放数据的地方,所以就叫做缓冲存储器了,简称“缓存”。它的作用就像仓库中临时堆放货物的地方一样,货物从运输车辆上放下时临时堆放在缓存区中,然后再搬到内部存储区中长时间存放。货物在这段区域中存放的时间很短,就是一个临时货场。
最初缓存只有一级,后来处理器速度又提升了,一级缓存不够用了,于是就添加了二级缓存二级缓存是比一级缓存速度更慢,容量更大的内存,主要就是做一级缓存和内存之间数据临时交换的地方用。现在,为了适应速度更快的处理器P4EE,已经出现了三级缓存了,它的容量更大,速度相对二级缓存也要慢一些,但是比内存可快多了。 缓存的出现使得CPU处理器的运行效率得到了大幅度的提升,这个区域中存放的都是CPU频繁要使用的数据,所以缓存越大处理器效率就越高,同时由于缓存的物理结构比内存复杂很多,所以其成本也很高。
目前,PC及其服务器系统的发展趋势之一是CPU主频越做越高,系统架构越做越先进,而主存DRAM的结构和存取时间改进较慢。因此,缓存(Cache)技术愈显重要,在PC系统中Cache越做越大。广大用户已把Cache做为评价和选购PC系统的一个重要指标。
  现在的CPU普遍有一级缓存和二级缓存。一般来说,一级缓存的数量比较少,而二级企业缓存的数量一般比一级缓存大几倍。为什么要缓存呢,这主要是CPU厂家为了提高CPU的使用效率。因为,随着CPU的速度的快速发展,目前的CPU速度已经达到一个令人惊讶的速度,据个例子来说,一个奔腾3-1G的CPU其运算速度为每秒钟能够完成10亿次二进制计算,而一个奔腾4-3G则意味着每秒钟能够完成30亿次二进制运算。当然由于CPU还要介入浮点数据转换和介入控制主板上的其他设备资源,实际真正用于数据处理的资源会受到较大影响,但总体来说,CPU的速度已经达到一个前所未有的程度。由于其他硬件在数据传输方面未能跟上,因此,CPU厂家就在CPU内封装了缓存,其中,一级缓存主要将CPU的硬指令长期存储,以便CPU在调用指令时不必再通过与内存交换数据来取得,另外,还将最近处理的进程数据(中间数据)存放在一级缓存;而二级缓存则是完全存放最近处理的进程数据(中间数据)和即将调用的数据。通过这样一来设置,就可以避免CPU运算过程中要频繁与内存交换数据,减少CPU的等待时间,提高CPU的利用效率。
【系统芯片】

系统芯片是采用低于0.6um工艺尺寸的电路,包含一个或者多个微处理器(大脑),并且有相当容量的存储器(用来记忆),在一块芯片上实现多种电路,能够自主地工作,这里的多种电路就是对信号进行操作的各种电路,就像我们的手、脚,各有各的功能。这种集成电路可以重复使用原来就已经设计好的功能复杂的电路模块,这就给设计者节省了大量时间。
  SOC技术被广泛认同的根本原因,并不在于它拥有什么非常特别的功能,而在于它可以在较短的时间内被设计出来。SOC的主要价值是可以有效地降低电子信息系统产品的开发成本,缩短产品的上市周期,增强产品的市场竞争力。
【系统管理中断(System
Management Interrupt)】

  以前x86使用INT x的方式来处理中断程序,后来要处理的中断越来越多,为了让软硬件设计者们更容易设计出符合需求的中断程序,CPU提供了SMI系统管理中断。使用时CPU要进入系统管理模式System
Management Mode(SMM)中,CPU需要一块内存区域SMRAM。CPU在进入SMM前,会把寄存器的值存储SMRAM中,再将程序跳转到SMI
ENTRY POINT去执行,处理完后再利用RSM指令跳转回原来的地方继续执行,同时恢复CPU寄存器的值。

  SMI分为软件中断和硬件中断,即用程序设定产生中断和外部硬件产生中断如电源键按下产生中断。
【LVDS】

LVDS(Low-Voltage Differential Signaling,低压差分信号传输),是1994年由美国国家半导体公司提出的一种信号传输模式,是一种电平标准,广泛应用于液晶屏接口。它在提供高数据传输率的同时会有很低的功耗,另外它还有许多其他的优势:
  1、低电压电源的兼容性;2、低噪声;3、高噪声抑制能力;4、可靠的信号传输;5、能够集成到系统级IC内。

  使用LVDS技术的的产品数据速率可以从几百Mbps到2Gbps。它是电流驱动的,通过在接收端放置一个负载而得到电压,当电流正向流动,接收端输出为1,反之为0。摆幅为250mv-450mv。

LVDS接口是LCD Panel通用的接口标准,以8-bit Panel为例,包括5组传输线,其中4组是数据线,代表Tx0+/Tx0-... Tx3+/Tx3-。还有一组是时钟信号,代表TxC+/TxC-。相应的在Panel一端有5组接收线。如果是6-bit
Panel则只有3组数据线和一组时钟线。

  LVDS接口又称 RS-644 总线接口,是20世纪90年代才出现的一种数据传输和接口技术。LVDS技术的核心是采用极低的电压摆幅高速差动传输数据,可以实现点对点或一点对多点的连接,具有低功耗、低误码率、低串扰和低辐射等特点,其传输介质可以是铜质的PCB连线,也可以是平衡电缆。

LVDS在对信号完整性、低抖动及共模特性要求较高的系统中得到了越来越广泛的应用。目前,流行的LVDS技术规范有两个标准:一个是 TIA/EIA(电讯工业联盟/电子工业联盟)的ANSI/TIA/EIA-644标准,另一个是IEEE 1596.3标准。

目前大多数计算机与外部显示设备之间都是通过模拟VGA接口连接,计算机内部以数字方式生成的显示图像信息,被显卡中的D/A(数字/模拟)转换器转变为
R、G、B三原色信号和行、场同步信号,信号通过电缆传输到显示设备中。对于模拟显示设备,如模拟CRT显示器,信号被直接送到相应的处理电路,驱动控制 显像管生成图像。而对于LCD、DLP等数字显示设备,显示设备中需配置相应的A/D(模拟/数字)转换器,将模拟信号转变为数字信号。在经过D/A和A
/D2次转换后,不可避免地造成了一些图像细节的损失。
【VGA】

VGA(Video Graphics Array)即视频图形阵列,是IBM在1987年随PS/2(PS/2
原是“Personal System 2”的意思,“个人系统2”,是IBM公司在1987年推出的一种个人电脑)机推出的。PS/2电脑上使用的键盘鼠标接口就是现在的PS/2接口。因为标准不开放,PS/2电脑在市场中失败了。只有PS/2接口一直沿用到今天)一起推出的使用模拟信号的一种视频传输标准,在当时具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域得到了广泛的应用。这个标准对于现今的个人电脑市场已经十分过时。即使如此,VGA仍然是最多制造商所共同支持的一个标准,个人电脑在加载自己的独特驱动程序之前,都必须支持VGA的标准。例如,微软Windows系列产品的开机画面仍然使用VGA显示模式,这也说明其在显示标准中的重要性和兼容性

VGA技术的应用还主要基于VGA显示卡计算机笔记本等设备,而在一些既要求显示彩色高分辨率图像又没有必要使用计算机的设备上,VGA技术的应用却很少见到。本文对嵌入式VGA显示的实现方法进行了研究。
  基于这种设计方法的嵌入式VGA显示系统,可以在不使用VGA显示卡计算机的情况下,实现VGA图像的显示和控制。系统具有成本低、结构简单、应用灵活的优点,可广泛应用于超市、车站、飞机场等公共场所的广告宣传和提示信息显示,也可应用于工厂车间生产过程中的操作信息显示,还能以多媒体形式应用于日常生活。

通用VGA显示卡系统主要由控制电路、显示缓存区和视频BIOS(Basic
Input Output System即基本输入输出系统)程序三个部分组成。控制电路如图1所示。控制电路主要完成时序发生、显示缓冲区数据操作、主时钟选择和D/A(Digital
to Analog即将数字信号转换为模拟信号)转换等功能;显示缓冲区提供显示数据缓存空间;视频BIOS作为控制程序固化在显示卡的ROM(Read-Only
Memory即只读存储器)中。
1. VGA时序分析
  通过对VGA显示卡基本工作原理的分析可知,要实现VGA显示就要解决数据来源、数据存储、时序实现等问题,其中关键还是如何实现VGA时序。
VGA的标准参考显示时序如图2所示。行时序和帧时序都需要产生同步脉冲(Sync
a)、显示后沿(Back porch b)、显示时序段(Display interval c)和显示前沿(Front porch d)四个部分。几种常用模式的时序参数如表1所示。
2. VGA时序实现
  首先,根据刷新频率确定主时钟频率,然后由主时钟频率和图像分辨率计算出行总周期数,再把表1中给出的a、b、c、d各时序段的时间按照主计数脉冲源频率折算成时钟周期数。在CPLD中利用计数器和RS触发器,以计算出的各时序段时钟周期数为基准,产生不同宽度和周期的脉冲信号,再利用它们的逻辑组合构成图2中的a、b、c、d各时序段以及D/A转换器的空白信号BLANK和同步信号SYNC。
3. 读SRAM地址的产生
  主时钟作为像素点计数脉冲信号,同时提供显存SRAM的读信号和D/A转换时钟,它所驱动的计数器的输出端作为读SRAM的低位地址。行同步信号作为行数计数脉冲信号,它所驱动的计数器的输出端作为读SRAM的高位地址。由于采用两片SRAM,所以最高位地址作为SRAM的片选使用。由于信号经过CPLD内部逻辑器件时存在一定的时间延迟,在CPLD产生地址和读信号读取数据时,读信号、地址信号和数据信号不能满足SRAM读数据的时序要求。可以利用硬件电路对读信号进行一定的时序调整,使各信号之间能够满足读SRAM和为DAC输入数据的时序要求。
4. 数据宽度和格式
  如果VGA显示真彩色BMP图像,则要R、G、B三个分量各8位,即24位表示一个像素值,很多情况下还采用32位表示一个像素值。为了节省显存存储空间,可采用高彩色图像,即每个像素值由16位表示,R、G、B三个分量分别使用5位、6位、5位,比真彩色图像数据量减少一半,同时又能满足显示效果。

实现VGA显示,除了实现时序控制,还必须有其他功能单元的支持才能实现完整的图像显示。
1
控制器

  VGA显示有多种模式,需要通过控制器实现模式间切换,还需要对显示的内容进行接收、处理和显示。所以控制器的性能越高,数据更新和显示效果就越好。
2
显示数据缓存区

  VGA显示要求显存速度快、容量大。读速度要达到65MHz以上,存储容量至少要2MB。可采用高速SRAM或SDRAM作为显示数据缓存。
3
数模转换器DAC

  VGA显示对数模转换DAC有如下要求:一是高速转换,转换的速度应该在80MHz或以上;二是同步性好,能保证
R、G、B三路信号的同步性;三是有相应的精度。可选择一种包括3路8位高速D/A的专用视频芯片
4
数据源及其接口

  要提高VGA显示的效率,就要不断更新数据,同时还要保证实时性,因此需要非常高的接口速度。VGA显示卡虽可达到100Mbps的数据更新速度,但是一般设备、特别是嵌入式设备达不到这么高的速度,而且大多数情况下也不需要这么高的数据更新率。目前常用接口为EPP接口、USB接口、
TCP/IP、RS232C/485等。其中TCP/IP、EPP接口和USB接口是基于计算机的,速度较快;TCP/IP、RS232C/485是基于网络通信的接口,其中RS485速度虽慢,但应用广泛且容易实现远程控制
数据源为低速接口时,可以考虑采用
Flash或者SM存储卡等预先存储一些常用的图像显示数据和字库文件,在更新数据时直接应用这些数据,从而加快显示缓存的更新速度。这样既能满足高分辨率图像的显示,又能满足文字信息数据的快速更新。当时为了存储更多的图像,可以先存储JPEG格式图像,再由控制器解码成BMP位图图像后送到显示缓存显示,这样就相对扩展了Flash的存储空间。同时,由于图像的解码速度要大大快于数据源接口的速度,也就相应提高了显示缓存数据更新速度。
  由各功能单元组成的VGA显示硬件结构框图如图3所示。
显存与显示同步实现
  在VGA显示时,要考虑如何实现显存数据更新与显示的同步进行。解决的方案有以下几种:
  (1) 采用具有缓存作用的双口RAM,这种方法使用的器件数量多、功耗大、成本高,基本不可取。

  (2) 采用两组SRAM进行乒乓工作模式,一组SRAM用于显示的同时,另一组SRAM用于图像数据的更新,然后在两组SRAM之间切换。这样做会提高一些成本,而且需要更复杂的总线控制。

  (3) 利用FPGA/CPLD和SDRAM构造双口SRAM。这种方法实时性好,成本较低,时序控制比较复杂,它是 实现高性能低成本要求的最佳方案。

  (4) 采用一组SRAM作为显存,可以简化系统设计、降低成本。这时可以考虑利用行时序和帧时序中SRAM总线空闲的时序段,在不关闭图像显示的情况下实现显存SRAM的数据更新。该方法的更新率与数据写速度密切相关,显存的写数据速度越快,该方法的更新率就越高。

  假设CPU的工作时钟最大为60MHz,并采用JPEG解码更新方式。这时如果将解码缓存区分配在CPU片内内存,则更新数据时直接由内存向
SRAM写数据,一次需要0.17μs;如果将解码缓存区分配在片外空间,则更新数据时CPU要先从片外读数据,再向SRAM写数据,这样写一次需要 0.25μs。在相邻显示的两帧图像只存在局部差别或更新文本显示信息时,可使用局部数据更新方法,以提高更新率。表2给出了显示每帧图像包含的总线空闲时间,以及在不同解码缓存区分配方式下图像全部更新和10%局部更新的帧率。这里提到的帧率是指对显存数据的更新速度,而不是指图像屏幕刷新率,它对刷新率没有影响。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: