用8位单片机能通过软件实现外设功能吗?
用8位单片机能通过软件实现外设功能吗?
您听说过每秒钟运行速度1亿次的8位单片机(MCU)吗?您可能为提高您的系统速度而不得不改用16位的单片机或用DSP。当您在设计您的系统时您可能需要多个串口,几路A/D和D/A,或一个红外数据收发器,最好还能有一个I2C/SPI串行外围接口,但您可能很难找到一个合适的单片机满足您的要求。如果采用SX系列超高速单片机,这些外部电路可以根据您的系统要求随时添加进您的单片机,而不会额外增加您的成本。
SX系列超高速单片机是美国SCENIX公司推出的,它的结构和指令与普通的单片机类似,但它利用其高速性能打造了一个单片机系统的全新概念“虚拟外设”。它把许多单片机会用到的功能通过模块化的软件来实现。由于这种软件模块相对独立,结构明晰,入口和出口参数已经定义好了,开发者无须知道模块是如何实现的,只需把需要的模块加到应用程序中去即可。
SCENIX公司为什么会想到这个主意呢?在8位嵌入式单片机领域中,单片机处理器的结构与20年前仍差不多,但是更加小巧,芯片上也集成了更多的外设功能和各种存储器,尺寸也更小。但是,如果将各种应用所需的功能都放在单片机内部便会使芯片面积增大,制造成本太高。通常,设计人员只能通过修改现有设计和重造掩膜,增加所需外设功能的硅片,才能增加单片机的功能,以满足不同领域应用的需要。而且,单片机的供应商为满足特定应用对不同性能的需要,必须制造同一器件的不同变体。例如,用于电视机遥控的单片机采用8位核心,外围硅片实现片内ROM和RAM、大量可编程I/O口、时钟产生电路和用于红外(IR)接口的通用异步收发器(UART)。相同的处理器核心增加了I2C接口就可用于录像机和摄像机。其它应用可能需要增加通信功能等等。
也有人尝试用处理器的部分能力来实现软件外设功能,但是,8位单片机的吞吐量通常限制了软件外设的使用。尽管有时在单片机中也加入一两种软件外设功能,但这些功能必须是简单的、吞吐量较低的而且对时间不敏感的,而复杂外设和高吞吐量外设功能仍需以硬件实现。例如,8位单片机的平均吞吐量接近4MIPS(每秒百万指令),用软件实现100kHz后台定时器约需要1.0MIPS吞吐量,19.2kbps的UART约需要1.5MIPS,(((模数转换器(ADC)约需5MIPS。这些功能占用单片机资源太多,往往只能通过硬件来实现。一些简单的功能,如I2C/SPI/MICROWIRE串行接口则可以通过软件来实现,许多工程师经常用软件实现低速UART作为硬件UART的补充,满足双UART的需要。但是如果需要高速或多软件UART,普通单片机就显得有点力不从心了,更别说A/D转换器、电机控制器和双音多频(DTMF)检测等其它功能了。对于那些实时性比较强或需要中断来实现的外围电路,普通的单片机由于速度和其中断响应的不可预见性而应用受到限制。