不同的嵌入式系统其设计要求相去甚远。如果设计的是手持式设备(如PDA),那么功耗是主要问题;而对机场或电影院售票设备,可靠性和安全将是主要考虑因素。当然,用户界面在上述两种系统中都是主要组成部分,但也有许多嵌入式系统还必须和传感器和执行器相连,这些系统要求对实际的激励做出迅速反应并生成复杂输出模式作为响应,完成这些动作需要处理引擎和系统输入输出端口紧密结合。
可以选择多种方法和器件将智能化功能加入系统中,并且可将这些方法和器件进行混合配对以便以最佳方式达到设计要求。最灵活的平台类型是将微处理器和操作系统结合起来,这种架构可以采取单板机带实时操作系统(RTOS)内核的形式,比如在ATM机或自动售货机中。更复杂的系统则嵌入一个完整的PC,上面运行Windows或其它操作系统,这样做可以利用现成的网络接口功能连接到标准打印机上。
测量和控制用FPGA
FPGA的性能和灵活性使得它们成为处理输入输出非常有效的技术。假如想计算那些比计数器处理的简单上升或下降沿更有趣的模拟或数字事件,或者要确认一个基于特定事件顺序或自定义通信协议的输入模式,然后在几纳秒后触发一个模拟操作,这时就可以利用FPGA监视输入信号,快速决定并做出反应。另外可以创建一个系统读取脉宽调制信号并迅速计算占空比,更进一步,还可以对FPGA进行配置以利用自定义数字协议进行通信,如对输入信息进行解码,然后将信息组合编码作为输出数据包再发送出去,这种快速解码在与非标准编码器连接时有助于读取和解读出位置和速度信息。你可能甚至希望同时进行上述所有操作,并使得这些操作互相同步,且和其它输入和输出任务同步。
面临的挑战
将FPGA集成到嵌入式系统最大的挑战是如何配置FPGA的逻辑,以及将传感器输入和控制输出与它连接起来。许多嵌入式系统设计人员对于在实时操作系统下运行的微处理器上编程非常熟练,但他们不喜欢在芯片级对硬件进行定义,这需要有设计工具和语言如VHDL方面的知识。当然,冒昧进入芯片级领域还意味着需要设计和构建芯片周边的电路板,虽然这对于一些嵌入式系统设计人员来说已经过时了,但仍然有许多设计人员宁愿尽可能地使用现成的硬件,特别是当硬件必须精确地测量出传感器数据并对其作数字化处理时。
设计系统
有几个原因你可能无法将整个应用程序嵌入到FPGA中去。应用程序大小是其中之一,FPGA的逻辑门数量有限,并且最终放入FPGA中的代码因编程人员以及生成代码的自动系统不同而效率可能很高也可能很低,另外FPGA上供用户使用的RAM容量也很有限,而基于PC的平台一般都带有相对较大的内存和硬盘空间。另外一个需要考虑的问题是FPGA设计常常无法进行浮点运算,市面上有在FPGA上执行浮点运算的工具,但它们可能可以也可能无法与你正在使用的开发工具兼容,如果无法全部以整型算法运行整个计算,可以放一部分在PC上执行。PC还可以提供一些其它好处,而这些好处在FPGA上无法容易地实现,包括文件I/O、网络操作、打印能力和基于PC的测量和控制能力,如图形识别/处理、GPIB/VXI工具控制以及与工业总线如CAN、RS-232和RS-485的接口等。
本文小结