基于MC13213的单芯片ZigBee平台的物理层协议研究与实现(3)
需要特别注意的是,由于SPI事务要求所有的数据传输都是按16 bit宽度进行的,当发送数据是奇数个字节时,其最后一字节数据要进行特别处理,即需填充一个任意字节以凑满16 bit宽度,但是这个拼凑的字节和最后那个有效字节的发送顺序必须按照图3中的顺序进行,即先发填充字节,以保证在TX RAM中,最后一字节紧跟在前面的偶数个字节之后。而在最后一字节数据之前的偶数个字节数据由于是16 bit宽度的倍数,所以在发送每个字时对字节发送顺序没有特别要求,只要接收方和发送方按照同一种顺序收发各字节即可。
3.1.1 使用SPI循环写事务向TX RAM中写入待发送数据
执行这个操作之前,待发送数据长度应已经写入TX_Pkt_Control寄存器的tx_pkt_length[6:0]字段。
MCU向TX RAM中写入待发送数据的一般流程如下:
(1)根据需要配置TX_Pkt_Control寄存器的tx_ram2_select位,以选择使用两块TX RAM中的一块。
(2)计算写入待发送数据所需要的SPI脉冲个数,注意:
①CRC字节不需写入到TX RAM中,它是由硬件自动产生的;
②待发送数据的最大长度为125 B(去掉2 B的CRC);
③必须为偶数个字节,若数据长度为奇数个字节,应加1使其变为偶数。
(3)做一个SPI循环写事务来写入数据:
①MCU拉低SPI模块的片选信号CE,选中Modem;
②MCU向Modem发送第一个SPI脉冲,其中R/W位应为0,表示写操作;
③按照(2)中计算的SPI脉冲个数,写入待发送数据;
④MCU拉高CE,使片选失效;
(4)整个写操作结束。
3.1.2 使用SPI循环读事务读取RX RAM中的已接收数据
MCU读取RX RAM中的已接收数据的一般流程如下:
(1)MCU读Modem的RX_Status寄存器rx_pkt_latch[6:0]字段以获取数据长度。
(2)计算读取RX RAM中的已接收数据所需要的SPI脉冲个数:
①通常不读取2 B的CRC,所以数据长度应减去2;
②若数据长度为奇数个字节,应加1使其变为偶数;
③按照Modem SPI事务协议的规定,应丢弃读到的第一个字(word),因为在第一次读取时,内部RAM的地址还没有准备好,这样又导致了数据长度加2。
(3)做一个SPI循环读事务来读取数据:
①MCU拉低SPI模块的片选信号CE,选中Modem;
②MCU向Modem发送第一个SPI脉冲,其中R/W位应为1,表示读操作;
③按照(2)中计算的SPI脉冲个数读取所有数据。注意,协议规定应丢弃读到的第一个字(word)。当数据为奇数个字节时,应丢弃图3中的那个填充字节;
④MCU拉高CE,使片选失效。
(4)整个读操作结束。
3.2 设置Modem运行模式
Modem有多种运行模式,主要可分成两类:活动模式和低功耗模式。其中活动模式包括Idle模式、Receive(RX)模式、Transmit(TX)模式和CCA/ED模式;低功耗模式包括Off模式、Hibernate模式、Doze模式[8]。
Idle模式是Modem退出任何其他模式后的默认模式,也是进入任何其他模式的初始模式;RX、TX模式分别为Modem接收、发送数据时所处的工作模式;CCA/ED模式为空闲信道评估/能量检测时所处的工作模式,用来评估信道是否空闲或测量信道的当前能量值[8]。
收发机状态设置是通过调用设置收发状态函数实现的,其函数头如下:
//-----------------------------------------*
//功能: 设置收发机状态函数,把收发机设置成用户期望的状态
//参数: nDesiredStatus - 用户期望状态
//返回: SUCCESS - 成功设置成指定模式;
// 等于用户期望模式-收发机之前就处于用户期望状态;(责任编辑:admin)
- “扫一扫”关注融合网微信号
免责声明:我方仅为合法的第三方企业注册用户所发布的内容提供存储空间,融合网不对其发布的内容提供任何形式的保证:不保证内容满足您的要求,不保证融合网的服务不会中断。因网络状况、通讯线路、第三方网站或管理部门的要求等任何原因而导致您不能正常使用融合网,融合网不承担任何法律责任。
第三方企业注册用户在融合网发布的内容(包含但不限于融合网目前各产品功能里的内容)仅表明其第三方企业注册用户的立场和观点,并不代表融合网的立场或观点。相关各方及作者发布此信息的目的在于传播、分享更多信息,并不代表本网站的观点和立场,更与本站立场无关。相关各方及作者在我方平台上发表、发布的所有资料、言论等仅代表其作者个人观点,与本网站立场无关,不对您构成任何投资、交易等方面的建议。用户应基于自己的独立判断,自行决定并承担相应风险。
根据相关协议内容,第三方企业注册用户已知悉自身作为内容的发布者,需自行对所发表内容(如,字体、图片、文章内容等)负责,因所发表内容(如,字体、图片、文章内容等)等所引发的一切纠纷均由该内容的发布者(即,第三方企业注册用户)承担全部法律及连带责任。融合网不承担任何法律及连带责任。
第三方企业注册用户在融合网相关栏目上所发布的涉嫌侵犯他人知识产权或其他合法权益的内容(如,字体、图片、文章内容等),经相关版权方、权利方等提供初步证据,融合网有权先行予以删除,并保留移交司法机关查处的权利。参照相应司法机关的查处结果,融合网对于第三方企业用户所发布内容的处置具有最终决定权。
个人或单位如认为第三方企业注册用户在融合网上发布的内容(如,字体、图片、文章内容等)存在侵犯自身合法权益的,应准备好具有法律效应的证明材料,及时与融合网取得联系,以便融合网及时协调第三方企业注册用户并迅速做出相应处理工作。
融合网联系方式:(一)、电话:(010)57722280;(二)、电子邮箱:2029555353@qq.com dwrh@dwrh.net
对免责声明的解释、修改及更新权均属于融合网所有。