作者

CSDN:黑客三遍猪 主页 https://blog.csdn.net/Zhu_Zhu_2009
QQ群:852283276
微信:arm80x86
微信公众号:青儿创客基地
B站:主页 https://space.bilibili.com/208826118

参考

RapidIO规范《RapidIO_Rev_2.2_Specification》
书籍《RapidIO The Embedded System Interconnect》
IDT CPS1848手册《CPS-1848™ User Manual》
Zynq-Linux移植学习笔记之13-i2c驱动配置

IDT CPS1848

  1. CPS1848结构图,最大18个port,注意的是port从0到17,即0x00到0x11。
    这里写图片描述
  2. CPS1848路由方式,每个端口提供256个缓存来存储设备路由表,还有256个缓存来存储域路由表,这样设计的目的是,在大型的系统里会用到域路由表,大型系统有很多底板,每个底板上也会有很多子板,域路由表用来选择包被发送到哪一块板卡,而设备路由表用来将包发送到某个处理单元(某个芯片的SRIO端口)。RIO_DOMAIN由RapidIO Domain Register寄存器确定。
    这里写图片描述
  3. 单播(unicast)编程,CPS1848每个端口都有自己的路由表,所以可以支持虚拟网络,路由配置时,有寄存器The Route Port Select Register selects来控制路由表项是添加到所有端口还是某个端口。路由配置主要是三个寄存器Standard Route Table Entries Configuration destID Select CSR,Standard Route Table Entry Configuration Port Select CSR和Standard Route Table Entry Default Port CSR。
    这里写图片描述
  4. 多播编程,用到再说。
  5. 上面配置路由的方法是非直接方式(Indirect Programming),配置路由需要操作多次,在多(线程)设备的环境下要做互斥,CPS1848支持另外一种直接方式(Direct Programming)可以支持这种情况。
    这里写图片描述
  6. Switch Port Information CAR寄存器,这个寄存器很重要,在多个Switch互联的系统里,用于确定拓扑关系。
    这里写图片描述
  7. Port General Control CSR寄存器,会用到DISCV位,是发现标志位。
    这里写图片描述
  8. Port Error and Status CSR寄存器,第1位PORT_OK。
    这里写图片描述
  9. Host Base deviceID Lock CSR寄存器,同xilinx SRIO IP。
    这里写图片描述

SRIO维护包配置芯片

待续。。。

I2C Slave模式配置芯片

以7位地址为例,采用1字节地址+3字节寄存器地址+7字节数据模式,写波形,
334
读波形,
335
读芯片ID,

$ i2ctransfer -y 0 w3@0x60 0x00 0x00 0x00 r4        

NMS1800,READ NUM为0的时候表示读一个寄存器,且发送了两次SLAVE ADDR,中间没有NACK和STOP。
336
写,
337

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐