找回密码
 立即注册
查看: 481|回复: 4

建议增加PIO(Programmable I/O)外设

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-01 23:18:33

15

主题

139

回帖

975

积分

高级会员

积分
975
发表于 2024-9-24 17:24:02 | 显示全部楼层 |阅读模式
    单片机上已有的各种硬件接口,例如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等。有些是简单的状态机,有些是精简的RSIC-V内核。通过简单的几条指令编程实现需要的接口,便于上手。

灵活性
可编程实现各种接口,例如1-wire,PWM,各种遥控编解码等,也可以实现UART,SPI这类标准接口以弥补原生数量的不足。

高速

可采用高于主CPU的时钟频率,不经过CPU达到较高的数据传输速度。例如开源项目RP2040逻辑分析仪,低价逻辑分析仪CY7C68013A,都是由可编程IO直接采样引脚存入内存,再经USB传输至上位机。

解放主CPU

有些种类接口虽然速度不高,但是需要各种延时和等待,红外或无线遥控信号空闲时充斥着各种杂波,用主CPU来处理会严重拖累整个系统。例如ESP32开源项目FabGl就采用ULP内核来处理与PS2接口鼠标和键盘通讯。

低功耗

主CPU休眠时,用来处理低速任务,对数据和事件初步处理和筛选,有必要时才唤醒主CPU。

周期固定

高速CPU通常采用指令CACHE,分支预测等技术来提高执行速度,但是这也导致了指令周期不固定。这种情况用CPU指令来延时应该不可靠。简单的协处理器每个指令周期都是固定的,延时也方便。
----------------------------------------------------------------------------
最近看STC上搞WS2812的比较火热,我觉得每当有一种需求就设计一个硬件接口,不如直接搞成PIO更灵活。时钟就像现在的HSPWM,HSSPI,TFPU那样,独立于主CPU采用高主频,通过编程灵活实现多种接口,以后再有新的需求也不用改硬件。
可以参考RP2040的说明。

1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:342
  • 最近打卡:2025-04-30 08:26:34
已绑定手机

6

主题

202

回帖

810

积分

高级会员

积分
810
发表于 2024-9-24 19:34:22 | 显示全部楼层
分析的不错!!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:518
  • 最近打卡:2025-05-01 05:52:49
已绑定手机

46

主题

1694

回帖

2540

积分

金牌会员

积分
2540
发表于 2024-9-24 20:02:45 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:417
  • 最近打卡:2025-04-30 21:39:09
已绑定手机

34

主题

2096

回帖

2206

积分

荣誉版主

积分
2206
发表于 2024-9-24 22:31:34 | 显示全部楼层
1-wire和ws2812这些做成硬件接口其实非常容易,但在MCU领域这些接口不算是通用接口,没必要为这个大费周章
搞双核或者异构目前开来难度还比较大,因为主MCU自身需要提升的地方还有很多,可以看看下图中主流的MCU目前都支持些什么功能,个人建议先把这些进度赶上来,再考虑后面的比较好一点。
QQ20240924-222312.png

睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:417
  • 最近打卡:2025-04-30 21:39:09
已绑定手机

34

主题

2096

回帖

2206

积分

荣誉版主

积分
2206
发表于 2024-9-24 22:37:49 | 显示全部楼层
既然锚定扎根AI领域发展,那就得考虑逐步增加与AI相关的一些外设,比如加密单元、随机数发生器、之前的系列增加了硬件CRC单元就算是一种进步,但和AI领域的各种高级加密算法相比还是有一定的距离,而这些是将来需要跟上的内容。而基于IO操作的一些,不妨借鉴合泰,出一些低成本专用系列,比如点灯系列,电机系列,智能充电器系列,人机HMI系列等等,对于一款通用的MCU来说,通用外设接口的提升才是重点也是中心。
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 00:08 , Processed in 0.106645 second(s), 74 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表