嵌入式开发项目中,首先需要做需求分析,然后根据需求分析进行综合考虑,这里给出几个嵌入式硬件设计时特别要注意的问题。
1、MCU的选择
选择MCU时要考虑MCU所能够完成的功能、MCU的价格、功耗、供电电压、I/O口电平、管脚数目以及MCU的封装等因素。MCU的功耗可以从其电气性能参数中查到。供电电压有5V、3.3V以及1.8V超低电压供电模式。为了能合理分配MCU的I/O资源,在MCU选型时可绘制一张引脚分配表,供以后的设计使用。
2、电源
考虑嵌入式系统对电源的需求,例如嵌入式系统需要几种电源,如24V、12V、5V或者3.3V等,估计各需要多少功率或最大电流(mA)。在计算电源总功率时要考虑一定的余量,可按公式“电源总功率=2×器件总功率”来计算。
考虑芯片与器件对电源波动性的需求。一般允许电源波动幅度在±5%以内。对于A/D转换芯片的参考电压一般要求±1%以内。
考虑工作电源是使用电源模块还是使用外接电源。
3、普通I/O口
上拉、下拉电阻:考虑用内部或者外部上/下拉电阻,内部上/下拉阻值一般在700Ω左右,低功耗模式不宜使用。外部上/下拉电阻根据需要可选10KΩ~1MΩ之间。
开关量输入:一定要保证高低电压分明。理想情况下高电平就是电源电压,低电平就是地的电平。如果外部电路无法正确区分高低电平,但高低仍有较大压差,可考虑用A/D采集的方式设计处理。对分压方式中的采样点,要考虑分压电阻的选择,使该点通过采样端口的电流不小于采样最小输入电流,否则无法进行采样。
开关量输出:基本原则是保证输出高电平接近电源电压,低电平接近地电平。I/O口的吸纳电流一般大于放出电流。对小功率元器件控制最好是采用低电平控制的方式。一般情况下,若负载要求小于10mA,则可用芯片引脚直接控制;电流在10~100mA时可用三极管控制,在100mA~1A时用IC控制;更大的电流则适合用继电器控制,同时建议使用光电隔离芯片。
4、A/D电路与D/A电路
A/D电路:要清楚前端采样基本原理,对电阻型、电流型和电压型传感器采用不同的采集电路。如果采集的信号微弱,还要考虑如何进行信号放大。
D/A电路:考虑MCU的引脚通过何种输出电路控制实际对象。
5、控制电路
对外控制电路要注意设计的冗余与反测,要有合适的信号隔离措施等。在评估设计的布板时,一定要在构件的输入输出端引出检测孔,以方便排查错误时测量。
嵌入式硬件设计
6、考虑低功耗
低功耗设计并不仅仅是为了省电,更多的好处在于降低了电源模块及散热系统的成本。由于电流的减小也减少了电磁辐射和热噪声的干扰。随着设备温度的降低,器件寿命则相应延长,要做到低功耗一般需要注意以下几点:
并不是所有的总线信号都要上拉。上下拉电阻也有功耗问题需要考虑。上下拉电阻拉一个单纯的输入信号,电流也就几十微安以下。但拉一个被驱动了的信号,其电流将达毫安级。所以需要考虑上下拉电阻对嵌入式系统总功耗的影响。
不用的I/O口不要悬空,如果悬空的话,受外界的一点点干扰就可能成为反复振荡的输入信号,而MOS器件的功耗基本取决于门电路的翻转次数。
对一些外围小芯片的功耗也需要考虑。对于内部不太复杂的芯片功耗是很难确定的,它主要由引脚上的电流确定。例如有的芯片引脚在没有负载时,耗电大概不到1毫安,但负载增大以后,可能功耗很大。
7、考虑低成本
正确选择电阻值与电容值
比如一个上拉电阻,可以使用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%精度的电容也只有以上几种值,如果选了其它的值就必须使用更高的精度,成本就翻了几倍,却不能带来任何好处。
指示灯的选择
面板上的指示灯选什么颜色呢?有些人按颜色选,比如自己喜欢蓝色就选蓝色。但是其它红绿黄橙等颜色的不管大小(5mm以下)封装如何,都已成熟了几十年,价格一般都在5毛钱以下,而蓝色却是近三四年才发明的,技术成熟度和供货稳定度都较差,价格却要贵四五倍。
不要什么都选最好的
在一个高速嵌入式系统中并不是每一部分都工作在高速状态,而器件速度每提高一个等级,价格差不多要翻倍,另外还给信号完整性问题带来极大的负面影响。