单片机上已有的各种硬件接口,例如UART,SPI,I2C等,CPU软件只需读写它们的相关接口寄存器,硬件即可产生其特有的时序完成操作。对于不常见的或新设计的接口,可由软件操作GPIO实现,但是这要占用大量的CPU时间。其中夹杂着各种us级延时和等待,影响其它任务的执行。
对于这种简单的非标接口,外接FPGA虽功能上可实现,但就是太大材小用了。如果MCU内集成一块小规模的FPGA,我认为对MCU厂家来说硬件上应该没啥问题,就是开发不太方便,毕竟FPGA的开发工具和软件的编译器原理不太一样,做一套简单易用的FPGA开发工具应该不容易。
采用可编程IO是更好的选择,简单高速的协处理器来实现灵活的接口。主处理器只需读写接口FIFO即可。常见的几类MCU很多都有类似的功能,例如树莓派RP2040的PIO(Programmable I/O),早期常用的USB2.0高速MCU CY7C68013A的GPIF,ESP32上的ULP(Ultra-Low-Power coprocessor 超低功耗处理器),WCH的PIOC等。