基于SPCE061A和PTR8000的模拟SPI总线通信技术
1 SPCE061A板与PTR8000硬件连接
图1所示为SPCE061A单片机与PTR8000的硬件连接图。
2 PTRS000通讯模块的SPI总线的工作原理
PTR8000通讯模块作为从设备,其SPI接口使用4条I/O口线:串行时钟线SCK、输出数据线MISO、输入数据线MOSI和高电平有效的从机选择线CSN。PTR8000的SPI总线接口读命令时序如图2所示。写命令如图3所示。
3软件模拟SPI接口的实现方法
对于不具备SPI串行总线接口的SPCE061A单片机来说,可以使用软件来模拟SPI的操作。图1中IOBl模拟SPI主设备的数据输出端SDO,IOB0模拟SPI的时钟输出端SCK,IOA4模拟SPI的从机选择端CSN,IOB9模拟SPI的数据输入端SDI。
上电复位后首先将IOB0(SCK)的初始状态设置为0(空闲状态)。
读操作:SPCE061A首先通过IOB1口发送1位起始位(1),2位操作码(10),6位被读的数据地址,然后通过IOB9口读1位空位,之后再读16位数据(高位在前)。
写操作:SPCE061A首先通过IOB1口发送1位起始位(1),2位操作码(01),6位被写的数据地址,之后通过IOB1口发送被写的16位数据(高位在前),写操作之前要发送写允许命令,写之后要发送写禁止命令。
写允许操作(WEN):写操作首先发送l位起始位(1),2位操作码(00),6位数据(11XXXX)。
写禁止操作(WDS):写操作首先发送1位起始位(1),2位操作码(00),6位数据(00XXXX)。
下面介绍用SPCE061A模拟SPI的子程序。
对于不同的串行接口外围芯片,它们的时钟时序是不同的。上述子程序是针对在SCK的上升沿输入(接收)数据和在下降沿输出(发送)数据的器件。这些子程序也适用于在串行时钟的上升沿输入和下降沿输出的其他各种串行外围接口芯片,只要在程序中改变IOB0(SCK)的输出电平顺序进行相应调整即可口。
4结 语
本文介绍了通过软件模拟SPI总线接口,实现非SPI接口单片机与SPI接口的存储器之间数据传输的实现方法,给出了用SPCE061A编写的模拟SPI串行总线读PTR8000的子程序。该方法同样适用于其他单片机、ARM、微型计算机等。
SPCE061APTR8000模拟SPI总线通信技 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)