首页 理论教育 命令选通与CSMA-CA处理器技术

命令选通与CSMA-CA处理器技术

时间:2023-06-26 理论教育 版权反馈
【摘要】:命令选通/CSMA-CA处理器控制CPU和无线模块之间的通信。另外,CSP通过观测MAC定时器事件和MAC定时器通信。立即执行命令选通指令也只能用于控制CSP。执行程序模式以及MAC定时器允许CSP自动执行CSMA-CA算法,因此充当CPU的协处理器。立即选通ISCLEAR清除指令存取,填充它为SNOP指令。不遵守这一规则会导致程序出错,进而破坏指令存储器的内容。数据寄存器CSPT用来设置MAC计数器溢出比较值。图7-3运行一个CSP程序

命令选通与CSMA-CA处理器技术

命令选通/CSMA-CA处理器(CSP)控制CPU和无线模块之间的通信

CSP通过SFR寄存器RFST以及XREG寄存器CSPX、CSPY、CSPZ、CSPT、CSPSTAT、CSPCTRL和CSPPROG<n>(n的范围是0到23)和CPU通信。CSP产生中断请求到CPU。另外,CSP通过观测MAC定时器事件和MAC定时器通信。

CSP允许CPU发出命令选通到无线模块,从而控制无线模块的操作。

CSP有两种操作模式:立即执行命令选通模式和执行程序模式,描述如下:

(1)立即执行命令选通模式下,写立即执行命令选通指令到CSP,立即发给无线模块。立即执行命令选通指令也只能用于控制CSP。

(2)执行程序模式意味着CSP从程序存储器或指令存储器执行一系列的指令,包括一个很短的用户定义的程序。可用的指令来自一个20条指令的集合。所需的程序首先被CPU加载到CSP中,然后CPU指示CSP开始执行程序。

执行程序模式以及MAC定时器允许CSP自动执行CSMA-CA算法,因此充当CPU的协处理器。

1)指令存储器

CSP执行从24字节指令存储器读出的单字节程序指令。通过SFR寄存器RFST连续写入指令存储器。指令写指针保留在CSP中,指明了写入RFST的下一条指令存储在指令存储器中的地址。为了调试目的,当前加载到CSP的程序可以从XREG寄存器CSPPROG<n>读出。复位之后,指令写指针复位到位置0。在每次寄存器RFST写入期间,指令写指针累加1,直至到达存储器的终点,此时指令写指针停止累加。第一个写入RFST的指令将存放在位置0,也就是程序运行的起始点。至此,通过按照期望的顺序把每条指令写入RFST寄存器,全部的24条指令通过寄存器RFST写入指令存储器。

指令写指针可以通过下达立即执行命令选通指令ISSTOP复位到0。除此之外,指令写指针也可以由于在程序中执行选通命令SSTOP而复位到0。

复位之后,指令存储器中填充SNOP(无操作)指令(操作码值0xC0)。立即选通ISCLEAR清除指令存取,填充它为SNOP指令。

当CSP运行程序时,不可以使用RFST尝试将指令写入指令存储器。不遵守这一规则会导致程序出错,进而破坏指令存储器的内容。然而,立即执行命令选通指令可以写到RFST。

2)数据寄存器

CSP有3个数据寄存器CSPX、CSPY和CSPZ,它们可以和XREG寄存器一样,被CPU读/写。这些寄存器可以被某些指令读取或修改,这样CPU就可以设置CSP的程序使用的参数,也可以读取CSP的程序状态。

任何指令都不可以修改数据寄存器CSPT。数据寄存器CSPT用来设置MAC计数器溢出比较值。一旦运行的程序已经启动CSP,该寄存器的内容就会因为每次MAC计数器的溢出而递减1。当CSPT递减到0时,程序挂起,中断请求IRQ-CSP-STOP发出。如果CPU将0xFF写入数据寄存器CSPT,则CSPT就不递减1了。

注意:如果寄存器CSPT不使用比较功能,那么该寄存器必须在程序运行之前设置为0xFF。(www.xing528.com)

3)程序运行

指令存储器填充完毕之后,当立即执行命令选通指令ISSTART写入寄存器RFST时,就开始运行程序。程序将一直运行到指令的最后位置,即运行到数据寄存器CSPT的内容为0,或者运行到SSTOP指令已经执行,或者运行到立即停止指令ISSTOP已经写入RFST,或者运行到指令SKIP返回到超过指令存储器的最后位置。CSP运行在系统时钟频率上,为了正确的无线模块操作必须设置为32MHz。

当程序即将运行时,可以将立即执行命令选通指令写入RFST。在这种情况下,立即执行命令选通指令会绕过指令存储器里的指令执行,而指令存储器里的指令会在立即执行指令完成后执行。

程序运行期间,读RFST将返回当前指令即将执行的位置。只有一个例外,就是正在执行立即执行命令选通指令,这时RFST将返回0xD0。

4)中断请求

CSP有3个中断标志,它们可以产生RF中断向量,如下:

(1)IRQ-CSP-STOP:当CSP执行完毕存储器中最后一个指令,或者CSP由于下达指令SSTOP或ISSTOP而停止,或者寄存器CSPT等于0时,该中断标志有效。

(2)IRQ-CSP-WT:当处理器在指令WAITW或WAITX之后,继续执行下一条指令时,该中断标志有效。

(3)RQ-CSP-INT:当处理器执行指令INT时,该中断标志有效。

5)随机数指令

在更新指令RANDXY使用的随机数时,应当有一段时间延迟。因此如果使用这个值的指令RANDXY在前面的一个指令RANDXY之后立即发出,则两次读取的随机数数值可能相同。

6)运行CSP程序

载入和运行CSP程序的基本流程如图7-3所示。程序由于结束而停止运行时,当前程序遗留在程序存储器之中。这样一来,执行命令ISSTART就可以开始重新运行同样的程序。要清空程序的内容,使用ISCLEAR指令。

图7-3 运行一个CSP程序

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈