嵌入式硬件开发主要编写嵌入式系统硬件总体方案和详细方案,进行硬件选型(单片机、DSP或者其他处理器)及系统分析;负责硬件详细设计及实现,包含原理设计、PCB layout、硬件调试;参与系统移植以及驱动的开发调试;这些都是嵌入式硬件开发的工作内容,而在嵌入式硬件开发过程中,很多人都会在这些地方犯糊涂,总结了一些嵌入式硬件开发中需要留意的一些问题,这是嵌入式硬件开发中最重要的,必须了解。
在嵌入式硬件开发中,你做了需求分析,但是往往到后面问题的考虑上还是会出现很多问题,在这里一个不漏的告诉你:
1.MCU的选择
选择 MCU 时要考虑 MCU 所能够完成的功能、MCU 的价格、功耗、供电电压、I/O 口电平、管脚数目以及 MCU 的封装等因素。MCU 的功耗可以从其电气性能参数中查到。供电电压有 5V、3.3V 以及 1.8V 超低电压供电模式。为了能合理分配 MCU 的I/O资源,在 MCU 选型时可绘制一张引脚分配表,供以后的设计使用。
2. 晶振确定
晶振相当于嵌入式系统的心脏,其稳定与否直接关系其运行状态和通讯性能。常见的振有无源晶振,有源晶振,首先要确定其振荡频率,其次要确定晶振类型。
a、无源晶振
其匹配电容和匹配电阻的选择,这部分一般依据参考手册。在单片机设计中,经常使用插件晶振配合瓷片电容。在ARM中,为了减少空间和便于布线,经常使用四角无源晶振配合贴片电容。虽然我们对于固定晶振的匹配电路比较熟悉,但是为了达到万无一失,还是要看参考手册确定电容大小,是否需要匹配电阻等细节。
b、有源晶振
具有更好的更准确的时钟信号,但是相比之下,比无缘晶振价格高,因此这也是在硬件电路设计中需要关注的成本。
在做电路板设计时需要注意晶振走线尽量靠近芯片,关键信号远离时钟走线。在条件允许的情况下增加接地保护环。如果是多层板,也要讲关键信号远离晶振的走线。
3.普通I/O口
(1)上拉、下拉电阻:考虑用内部或者外部上/下拉电阻,内部上/下拉阻值一般在 700Ω 左右,低功耗模式不宜使用。外部上/下拉电阻根据需要可选 10KΩ~1MΩ 之间。
(2)开关量输入:一定要保证高低电压分明。理想情况下高电平就是电源电压,低电平就是地的电平。如果外部电路无法正确区分高低电平,但高低仍有较大压差,可考虑用 A/D 采集的方式设计处理。对分压方式中的采样点,要考虑分压电阻的选择,使该点通过采样端口的电流不小于采样最小输入电流,否则无法进行采样。
(3)开关量输出:基本原则是保证输出高电平接近电源电压,低电平接近地电平。I/O 口的吸纳电流一般大于放出电流。对小功率元器件控制最好是采用低电平控制的方式。一般情况下,若负载要求小于10mA,则可用芯片引脚直接控制;电流在 10~100mA 时可用三极管控制,在 100mA~1A 时用 IC 控制;更大的电流则适合用继电器控制,同时建议使用光电隔离芯片。
4.电源
(1)考虑系统对电源的需求,例如系统需要几种电源,如24V、12V、5V或者3.3V等,估计各需要多少功率或最大电流(mA)。在计算电源总功率时要考虑一定的余量,可按公式“电源总功率=2×器件总功率”来计算。
(2)考虑芯片与器件对电源波动性的需求。一般允许电源波动幅度在 ±5% 以内。对于A/D转换芯片的参考电压一般要求 ±1% 以内。
(3)考虑工作电源是使用电源模块还是使用外接电源。
5.控制电路
对外控制电路要注意设计的冗余与反测,要有合适的信号隔离措施等。在评估设计的布板时,一定要在构件的输入输出端引出检测孔,以方便排查错误时测量。
6.A/D电路与D/A电路
(1)A/D电路:要清楚前端采样基本原理,对电阻型、电流型和电压型传感器采用不同的采集电路。如果采集的信号微弱,还要考虑如何进行信号放大。
(2)D/A电路:考虑 MCU 的引脚通过何种输出电路控制实际对象。
7. 考虑低功耗
低功耗设计并不仅仅是为了省电,更多的好处在于降低了电源模块及散热系统的成本。由于电流的减小也减少了电磁辐射和热噪声的干扰。随着设备温度的降低,器件寿命则相应延长,要做到低功耗一般需要注意以下几点:
(1)并不是所有的总线信号都要上拉。上下拉电阻也有功耗问题需要考虑。上下拉电阻拉一个单纯的输入信号,电流也就几十微安以下。但拉一个被驱动了的信号,其电流将达毫安级。所以需要考虑上下拉电阻对系统总功耗的影响。
(2)不用的I/O口不要悬空,如果悬空的话,受外界的一点点干扰就可能成为反复振荡的输入信号,而MOS器件的功耗基本取决于门电路的翻转次数。
(3)对一些外围小芯片的功耗也需要考虑。对于内部不太复杂的芯片功耗是很难确定的,它主要由引脚上的电流确定。例如有的芯片引脚在没有负载时,耗电大概不到1毫安,但负载增大以后,可能功耗很大。
8.考虑低成本
(1)正确选择电阻值与电容值。比如一个上拉电阻,可以使用4.5K-5.3K的电阻,你觉得就选个整数5K,事实上市场上不存在5K的阻值,最接近的是4.99K(精度1%),其次是5.1K(精度5%),其成本分别比精度为20%的4.7K高4倍和2倍。20%精度的电阻阻值只有1、1.5、2.2、3.3、4.7、6.8几个类别(含10的整数倍);类似地,20%精度的电容也只有以上几种值,如果选了其它的值就必须使用更高的精度,成本就翻了几倍,却不能带来任何好处。
(2)指示灯的选择。面板上的指示灯选什么颜色呢?有些人按颜色选,比如自己喜欢蓝色就选蓝色。但是其它红绿黄橙等颜色的不管大小(5mm以下)封装如何,都已成熟了几十年,价格一般都在5毛钱以下,而蓝色却是近三四年才发明的,技术成熟度和供货稳定度都较差,价格却要贵四五倍。 (注: 这一已经是几年前的看法了.)
(3)不要什么都选最好的。在一个高速系统中并不是每一部分都工作在高速状态,而器件速度每提高一个等级,价格差不多要翻倍,另外还给信号完整性问题带来极大的负面影响.
这些是不是你都掌握了呢,在嵌入式硬件开发中这是很重要的,不要忽视这些,这都是你成为真正的嵌入式硬件开发工程师需要掌握的。