下面给出对嵌入式系统的要求:
(1) 高性能CPU内核。软外设的必须以高性能CPU内核为支持,只有采用高性能CPU内核,系统的频率才能得以提高,软外设和CPU之间才能高速传送数据,软外设才能得以高速运行而对系统整体工作不会有太多影响。建议采用带有流水线、32位以上RISC核的CPU。
(2) 快速的中断响应。软外设均采用中断方式向CPU提出服务请求。可以在片上存储器与内部总线之间增加寄存器组来减少系统的中断响应时间。
(3) 附加硬件模块。正如前面所提,系统有些特性是不能由软件实现的,象定时器、中断控制器。另外在信号处理中由于A/D、D/A转换如果用软件实现对系统开销太大,由硬件实现较好。
(4) 快速、足够的存储器和高性能的运算单元。
三、软外设的算法设计
由于软外设要求实时性强,有时需要和别的应用程序并行执行,在设计时可以把软外设看作等待服务的任务,协调、安排好这些任务非常重要,根据任务的确定性可以把实时系统的进程调度策略划分为两类:一类是静态的,主要负责预先知道发生时间的任务;要求按进度准点完成的任务;要求固定时间发生的任务。对这类调度策略可以采用Round-robin算法或间隔算法(见3)。另外一类是动态进程调度策略,负责那些不能预测何时发生任务;不知执行周期有多长的任务。这是一些具有临时性的任务,比如含有条件循环的任务(不知何时满足条件)。以上两种策略分别适用于不同的情况,在一个复杂的系统中,往往存在几个要求并行执行的软外设,进程的调度对任务的同步和系统的优化非常重要。
另外为了设计的可移植性和简便,要进行模块化和层次化设计,复杂的软外设可以看作由几个具有层次的简单的模块构成。
四、性能分析
现以示出了一个嵌入式系统的框图,该系统采用Motorola公司生产的MCF5104型号CPU,接有三个软外设,分别为UART、LCD和键盘控制器。现在从工作速度和能量损耗方面以UART软外设为例,对软外设进行性能分析。
[!--empirenews.page--]
在UART实现程序中,共有16条汇编指令,假定每条指令需要一个时钟周期(即CPI=1),没有奇偶校验功能。通过改变CPU主频(变化范围为30~100),计算执行的时间占有CPU时间的比率,分析UART软外设在不同波特率情况下对CPU的负担,计算过程如下:
假定CPU发送/接收一个字节的时间为t。UART软外设的CPU占有率为T,则
t=指令数%26;#215;CPI+中断响应周期%26;#215;CPU主频-1。
T=t%26;#215;波特率。
结果如表1所示。
表1 UART的CPU占有率
Rate(bit/s)
MHz
19200
38400
57600
1152000
30
1.534%
3.070%
4.605%
9.215%
50
0.920%
1.843%
2.764%
5.530%
75
0.614%
1.227%
1.843%
3.687%
100
0.460%
0.921%
1.380%
2.764%
上表中的统计数据是在假定UART工作在全双工方式(FD)下,没有检错功能得到的,而系统绝大多数时间是工作在半双工方式(HD)下的,HD方式下该UART的CPU占有时间率要减少25%。如果加上奇偶校验功能,该软外设的CPU占有时间率在FD方式会增加11.45%,HD方式下增加7.60%。
由表1可知,CPU频率越高,软外设对系统的负担越小,另外随着UART的波特率增加,系统负担加重。建议软外设的运行占CPU时间不能超过20%,实验证明,软外设的CPU占有率不超过20%的情况下对系统来说是可以承受的。
接下来我们分析该软外设的能耗问题。图三示出了CPU在接有URAT软外设或URAT硬件的情况下在不同情况下的CPU消耗电流曲线。
上图表明:
1.随着波特率增加,UART软外设的能耗增加。
2.随着CPU主频增加,UART软外设的能耗增加。
3.波特率在小于70Kbit/s时UART软外设的能耗低于硬件外设,此时选用软外设可以降低能耗,即该软外设适合于数据量不是很大的场合(如语音通信)。在要求系统传输速率极快的情况下(如视频流传输),选用硬件实现较为合适。
六、结束语
本文系统地介绍了软外设的设计思想,并以一个软外设为例,分析了它的一些性能指标。 软外设具有许多优点:如调试方便,系统可移植性强,能耗小,成本低。很适合在一些要求便携式、低能耗的场合应用。虽然也存在一些缺点,如速度慢,并行性差,但随着CPU相关技术的发展以及算法的完善,这些方面在一定程度上会得到改观。设计人员在设计时需要对硬件设计和软件设计进行折衷考虑。毕竟,软外设的出现给嵌入式系统设计提供了一种更为灵活的设计方案,给设计人员也提供了更多的选择余地,更广的设计空间。