Hands-On Embedded Programming with C++17
上QQ阅读APP看书,第一时间看更新

Intel MCS-51

Recent chips from Cypress CY7C68013A (USB peripheral controller) to Ti CC2541 (a Bluetooth SoC) feature commodity 8051 cores, demonstrating that the Intel MCS-51 family design remains popular to this day. There's a plethora of derived MCUs by other manufacturers as well, even though Intel stopped producing this series of MCUs in March of 2007. First introduced in the 1980s, it's an 8-bit MCU like the 8048, but expands heavily on its feature set.

The functional block diagram as depicted in the Intel 80xxAH datasheet is shown as follows:

It's very similar to the Atmel (now microchip) AT89S51  which is still in production today.

Datasheets commonly address size and performance metrics in a Features list, as quoted below for the AT89S51:

  • 4K Bytes of in-system programmable (ISP) flash memory
    - Endurance: 10,000 write/erase cycles (was 1,000,000 for EEPROM)
  • 4.0 V to 5.5 V operating range
  • Fully static operation: 0 Hz to 33 MHz (was 12 MHz)
  • Three-level program memory lock
  • 128 x 8-bit internal RAM
  • 32 programmable I/O lines

but then the list goes on with modern core, peripheral, low power and usability features:

  • Two 16-bit timer/counters
  • Six interrupt sources
  • Full duplex UART serial channel
  • Low-power Idle and power-down modes
  • Interrupt recovery from power-down mode
  • Watchdog timer
  • Dual data pointer
  • Power-off flag
  • Fast programming time
  • Flexible ISP programming, byte- and page-mode

The only major changes to the 8051 architecture over the past decades involved migrating from the original n-type metal oxide semiconductor (NMOS) transistor technology to complementary MOS (CMOS) – usually denoted as 80C51 – and more recently the addition of USB, I2C, and SPI interfaces, as well as advanced power management and debugging interfaces that have become ubiquitous since the beginning of this century. The Atmel application note 3487A doesn't give a concise explanation for the letter S, however the then new in-circuit serial programming (ISP) might thereby be highlighted.

The pinout diagram of the AT89S51 documents the SPI pins (MOSI, MISO, SCK):

Beyond standalone MCUs, 8051 cores are also integrated into larger systems where a low-power, basic MCU is dedicated to diverse, low speed, real-time or high I/O count tasks. A broad range of chips from the likes of Ti CC2541 (Bluetooth low energy SoC) to Cypress CY7C68013A (FX2LP™ USB peripheral controller) underline the utility and relevance of the 8051 architecture to this day. 

In field-programmable gate array (FPGA) or application specific integration circuit (ASIC) development, 8051-type processors are also commonly deployed as soft cores, where they are adapted and added to VHDL and Verilog HDL projects to handle tasks that lend themselves better to sequential execution without the need for tight timing or large bandwidth. Last but not least, the charm of soft cores lies in the ability to use full-featured development and debugging tools while maintaining tight integration with the remaining hardware design. The equivalent of only a few hundred bytes of program code run by a soft core might well be a large state machine, memories, counters and ALU-like logic, all of which raises the question which implementation is easier to validate and maintain.