CN112947163B - 一种基于dsp的biss-c协议传感器数据解析与提取方法 - Google Patents
一种基于dsp的biss-c协议传感器数据解析与提取方法 Download PDFInfo
- Publication number
- CN112947163B CN112947163B CN202110138366.5A CN202110138366A CN112947163B CN 112947163 B CN112947163 B CN 112947163B CN 202110138366 A CN202110138366 A CN 202110138366A CN 112947163 B CN112947163 B CN 112947163B
- Authority
- CN
- China
- Prior art keywords
- biss
- spi
- bit
- fifo
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25257—Microcontroller
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Dc Digital Transmission (AREA)
Abstract
本发明公开了一种基于DSP的BISS‑C协议传感器数据解析与提取方法,针对采用FPGA或专用BISS‑C芯片读取位置信号成本高,利用DSP解析造成数据时钟不连续与无法适用任意具有BISS‑C协议的传感器的问题,本发明通过SPI的发送FIFO模块,解决了数据时钟不连续的问题;利用数据起始位的特点,解决不同光电编码器及不同SPI波特率导致Ack段位数长度不一致的问题。该方法实现了只采用DSP的SPI模块就能直接解码具有BISS‑C协议的数据,从而实现只采用DSP芯片就可以完成对具有BISS‑C协议位置传感器的电机进行伺服控制。极大简化了具有BISS‑C协议的光电编码器的转台的控制软件程序,且大大降低了成本。
Description
技术领域
本发明涉及惯性导航系统校准技术领域,具体涉及一种基于DSP的BISS-C协议传感器数据解析与提取方法。
背景技术
为满足高精度的转台控制需求,现在多数转台的位置传感器采用高达26位甚至32位的光电编码器,光电编码器大多采用BISS-C协议与数据接收系统进行数据交换。
在目前的现有技术中,一般采用的方案是通过FPGA或专用的BISS-C芯片将BISS-C数据解码后传输给驱动控制的主控芯片。使用 FPGA或专用BISS-C芯片会导致整个转台控制方案的成本较高。在一些其他的方案中,是利用DSP的PWM模块或输入IO口模拟BISS-C通信过程中的MA信号等,这样的模拟效果性能较差,且DSP的资源占用率高;或者,虽然选择了采用SPI读取,但因为每个光电编码器BISS-C协议的 Ack段的时间各不相同,且SPI采用不同的波特率,Ack段的位数也会随之变化,其方法不适用于BISS-C协议,且若不使能SPI发送FIFO,和设置SPI发送FIFO的延时为0,用for语句产生的时钟其实是不连续的,因为SPI发送完一帧数据到下一个数据的发送会有延时,这样会导致DSP 的资源占用率高,且数据读取会有跳动,精度差。
发明内容
针对现有技术中存在的不足,本发明提供了一种基于DSP的BISS-C 协议传感器数据解析与提取方法。
本发明解决其技术问题所采用的技术方案是:
一种基于DSP的BISS-C协议传感器数据解析与提取方法,所述DSP 的SPI模块具有发送FIFO与接收FIFO功能。所述方法包括:
步骤1:初始化DSP并进行SPI模块设置,设置SPI的FIFO发送延时为0,使能SPI模块的发送FIFO与接收FIFO功能。
步骤2:向SPI的发送FIFO连续放入M个16位长度的数据,用来产生连续的M*16个周期的时钟信号,并作为传感器的时钟输入。
步骤3:设接收FIFO接收到X个字,判断X是否大于等于M,若是,则读取接收FIFO中的前M个字的数据,跳转至步骤4;否则,跳转至步骤3。
步骤4:BISS-C协议在Ack段的最后一个位与起始位和零位组成了二进制数3'b010,对读取的数据从第一位向最后一位顺序进行对比查找,若读取数据的找不到3'b010,则跳转至步骤5;否则,找到的第一个3'b010后的数据就是传感器的位置信号,而第一个3'b010中的1 就是起始位,设BISS-C协议除Ack段与Timeout段后的总数为N位,起始位位于读取数据的第K位,若(M*16–K+1)小于N,则跳转至步骤5;若(M*16–K+1)大于等于N,则跳转至步骤6。
步骤5:判断M是否等于SPI的FIFO深度,若是,则判断SPI模块的波特率是否小于等于10kbps,若是,则输出读取失败的标志位,读取结束;若SPI模块的波特率是大于10kbps,则降低SPI模块的波特率,跳转至步骤2;若M小于SPI的FIFO深度,则M=M+1,跳转至步骤2。
步骤6:设err=(M*16–K+1)-N,若err大于等于16,则M=M-1,跳转至步骤2;否则,输出读取成功的标志位,数据解析结束。
本发明的主要特点是:本发明利用SPI的FIFO模块,解决了数据时钟不连续的问题;利用数据起始位的特点,解决不同光电编码器及不同SPI波特率导致Ack段位数长度不一致的问题,使解析数据方法适用于任意具有BISS-C协议的传感器。本发明只使用DSP的SPI模块就能实现BISS-C协议的数据解析,简化了具有BISS-C协议的光电编码器的转台的控制软件程序,极大降低了成本。
附图说明
图1是一种光电编码器的BISS-C协议的数据格式图;
图2是一种基于DSP的BISS-C协议传感器数据解析与提取方法流程图。
具体实施方式
下面结合附图对本发明作进一步描述。
请参阅图1,本发明实施例中的光电编码器的回复的数据格式包括:Ack段、起始位、零位、位置信号、错误位、报警位、位置信号校验段、温度信号、温度校验段与Timeout段。
参照图1和图2,一种基于DSP的BISS-C协议传感器数据解析与提取方法,所述DSP的SPI模块具有发送FIFO与接收FIFO功能。所述方法包括:
步骤1:初始化DSP并进行SPI模块设置,设置SPI的FIFO发送延时为0,使能SPI模块的发送FIFO与接收FIFO功能。
步骤2:向SPI的发送FIFO连续放入M个16位长度的数据,用来产生连续的M*16个周期的时钟信号,并作为传感器的时钟输入。
步骤3:设接收FIFO接收到X个字,判断X是否大于等于M,若是,则读取接收FIFO中的前M个字的数据,跳转至步骤4;否则,跳转至步骤3。
步骤4:BISS-C协议在Ack段的最后一个位与起始位和零位组成了二进制数3'b010,对读取的数据从第一位向最后一位顺序进行对比查找,若读取数据的找不到3'b010,则跳转至步骤5;否则,找到的第一个3'b010后的数据就是传感器的位置信号,而第一个3'b010中的1 就是起始位,设BISS-C协议除Ack段与Timeout段后的总数为N位,起始位位于读取数据的第K位,若(M*16–K+1)小于N,则跳转至步骤5;若(M*16–K+1)大于等于N,则跳转至步骤6。
步骤5:判断M是否等于SPI的FIFO深度,若是,则判断SPI模块的波特率是否小于等于10kbps,若是,则输出读取失败的标志位,读取结束;若SPI模块的波特率是大于10kbps,则降低SPI模块的波特率,跳转至步骤2;若M小于SPI的FIFO深度,则M=M+1,跳转至步骤2。
步骤6:设err=(M*16–K+1)-N,若err大于等于16,则M=M-1,跳转至步骤2;否则,输出读取成功的标志位,数据解析结束。
数据解析完后,若错误位、报警位、位置校验与温度校验无误,则截取位置信号与温度信号通过换算公式,得出当前转台的实际位置与传感器温度。
Claims (3)
1.一种基于DSP的BISS-C协议传感器数据解析与提取方法,其特征在于,所述DSP的SPI模块具有发送FIFO与接收FIFO功能,所述方法包括:
步骤1:初始化DSP并进行SPI模块设置,设置SPI的FIFO发送延时为0,使能SPI模块的发送FIFO与接收FIFO功能;
步骤2:向SPI的发送FIFO连续放入M个16位长度的数据,用来产生连续的M*16个周期的时钟信号,并作为传感器的时钟输入;
步骤3:设接收FIFO接收到X个字,判断X是否大于等于M,若是,则读取接收FIFO中的前M个字的数据,跳转至步骤4;否则,跳转至步骤3;
步骤4:BISS-C协议在Ack段的最后一个位与起始位和零位组成了二进制数3'b010,对读取的数据从第一位向最后一位顺序进行对比查找,若读取的数据找不到3'b010,则跳转至步骤5;否则,找到的第一个3'b010后的数据就是传感器的位置信号,而第一个3'b010中的1就是起始位,设BISS-C协议除Ack段与Timeout段后的总数为N位,起始位位于读取数据的第K位,若(M*16–K+1)小于N,则跳转至步骤5;若(M*16–K+1)大于等于N,则跳转至步骤6;
步骤5:判断M是否等于SPI的FIFO深度,若是,则判断SPI模块的波特率是否小于等于10kbps,若是,则输出读取失败的标志位,读取结束;若SPI模块的波特率是大于10kbps,则降低SPI模块的波特率,跳转至步骤2;若M小于SPI的FIFO深度,则M=M+1,跳转至步骤2;
步骤6:设err=(M*16–K+1)-N,若err大于等于16,则M=M-1,跳转至步骤2;否则,输出读取成功的标志位,数据解析结束。
2.如权利要求1所述的一种基于DSP的BISS-C协议传感器数据解析与提取方法,其特征在于:设SPI的FIFO深度为Y个字,第一次向SPI的发送FIFO放入的M个16位长度的数据时,M小于等于Y。
3.如权利要求1所述的一种基于DSP的BISS-C协议传感器数据解析与提取方法,其特征在于:解析的数据从读取数据的第K位开始,到K+N-1位结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110138366.5A CN112947163B (zh) | 2021-02-01 | 2021-02-01 | 一种基于dsp的biss-c协议传感器数据解析与提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110138366.5A CN112947163B (zh) | 2021-02-01 | 2021-02-01 | 一种基于dsp的biss-c协议传感器数据解析与提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112947163A CN112947163A (zh) | 2021-06-11 |
CN112947163B true CN112947163B (zh) | 2022-08-05 |
Family
ID=76241140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110138366.5A Active CN112947163B (zh) | 2021-02-01 | 2021-02-01 | 一种基于dsp的biss-c协议传感器数据解析与提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112947163B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535614B (zh) * | 2021-09-13 | 2022-01-11 | 之江实验室 | 一种解码biss-c协议的通信系统 |
CN115145857B (zh) * | 2022-09-05 | 2022-11-18 | 中国船舶重工集团公司第七0七研究所 | 接口协议转换器转换方法及用于执行方法的fpga系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010027450A (ko) * | 1999-09-14 | 2001-04-06 | 윤종용 | 인터넷상의 음성 모듈과 종합 정보통신망 기본 회선 모듈간(間)을 직접 연동(連動)시킬수 있는 송수신 환경 설정 방법 |
CN104350700A (zh) * | 2012-05-29 | 2015-02-11 | 飞思卡尔半导体公司 | 用于串行通信设备的时钟 |
CN105119907A (zh) * | 2015-07-22 | 2015-12-02 | 哈尔滨工业大学 | 一种基于FPGA的BiSS-C通信协议方法 |
CN105389286A (zh) * | 2015-10-29 | 2016-03-09 | 中国科学院长春光学精密机械与物理研究所 | 一种biss c协议数据采集及显示装置 |
CN106066837A (zh) * | 2016-05-30 | 2016-11-02 | 哈工大机器人集团有限公司 | 一种基于fpga的biss‑c协议通用控制器 |
CN205788169U (zh) * | 2016-05-30 | 2016-12-07 | 哈工大机器人集团有限公司 | 一种基于fpga的biss‑c协议通用控制器 |
CN111162984A (zh) * | 2019-12-27 | 2020-05-15 | 常州节卡智能装备有限公司 | 一种基于biss-c的控制方法、装置及通信系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8135881B1 (en) * | 2010-09-27 | 2012-03-13 | Skyworks Solutions, Inc. | Dynamically configurable serial data communication interface |
US10002090B2 (en) * | 2015-04-08 | 2018-06-19 | Microsemi Semiconductor Ulc | Method for improving the performance of synchronous serial interfaces |
-
2021
- 2021-02-01 CN CN202110138366.5A patent/CN112947163B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010027450A (ko) * | 1999-09-14 | 2001-04-06 | 윤종용 | 인터넷상의 음성 모듈과 종합 정보통신망 기본 회선 모듈간(間)을 직접 연동(連動)시킬수 있는 송수신 환경 설정 방법 |
CN104350700A (zh) * | 2012-05-29 | 2015-02-11 | 飞思卡尔半导体公司 | 用于串行通信设备的时钟 |
EP2856691A1 (en) * | 2012-05-29 | 2015-04-08 | Freescale Semiconductor, Inc. | Clock for serial communication device |
CN105119907A (zh) * | 2015-07-22 | 2015-12-02 | 哈尔滨工业大学 | 一种基于FPGA的BiSS-C通信协议方法 |
CN105389286A (zh) * | 2015-10-29 | 2016-03-09 | 中国科学院长春光学精密机械与物理研究所 | 一种biss c协议数据采集及显示装置 |
CN106066837A (zh) * | 2016-05-30 | 2016-11-02 | 哈工大机器人集团有限公司 | 一种基于fpga的biss‑c协议通用控制器 |
CN205788169U (zh) * | 2016-05-30 | 2016-12-07 | 哈工大机器人集团有限公司 | 一种基于fpga的biss‑c协议通用控制器 |
CN111162984A (zh) * | 2019-12-27 | 2020-05-15 | 常州节卡智能装备有限公司 | 一种基于biss-c的控制方法、装置及通信系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112947163A (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112947163B (zh) | 一种基于dsp的biss-c协议传感器数据解析与提取方法 | |
CN100545882C (zh) | 用于无线遥控接收芯片的自适应解码方法 | |
CN106817197B (zh) | 一种基于占空比调制的通信编解码方法 | |
RU2000100918A (ru) | Способ расширения диапазона последовательной нумерации и система для протоколов избирательной повторной передачи | |
CN1317176A (zh) | 用于移动通信系统的数据速率检测设备和方法 | |
CN102170326B (zh) | 一种位置测量装置的串行通信方法及其装置 | |
JP4260688B2 (ja) | データ送信装置、データ送受信システム、データ送信装置の制御方法およびデータ送受信システムの制御方法 | |
CN101983481B (zh) | 用于发送的设备和方法、用于接收的设备和方法以及程序 | |
CN115208512B (zh) | 一种遥测数据帧编解码方式 | |
CN103036641A (zh) | 数据交换方法、系统及反序列化方法 | |
CN101047447B (zh) | 基于光纤的点对点工业串行实时通信系统及其控制方法 | |
CN106448128B (zh) | 一种红外遥控数据的处理方法及系统 | |
CN112994804B (zh) | 火箭遥测数据的处理方法、装置、电子设备及存储介质 | |
US20110286400A1 (en) | Method for sending and receiving clock, apparatus for transmitting clock | |
CN1182985A (zh) | 利用维特比译码器测量比特差错率的装置 | |
CN101442380B (zh) | 基于高速串行接口编码方式的误码率测试方法与装置 | |
CN103490856B (zh) | 用于深空探测的Mark5B格式VLBI数据接收解码与纠错系统及方法 | |
CN114253879B (zh) | 一种基于软件模拟的多通道串口通信方法及系统 | |
CN210183341U (zh) | 用于不同传输速率的双相标志编码的译码电路 | |
CN107994970B (zh) | 一种基于arinc429总线通信的通用数据解码方法 | |
CN113922924A (zh) | 一种基于spi的绝对值编码器通信方法及系统 | |
CN102932103A (zh) | 一种基于数字化变电站的数据传输速率自适应接收方法 | |
CN114285734B (zh) | 基于光缆接续盒的输电线路的通信监测系统 | |
CN114697153B (zh) | 一种通过光纤实现a429总线超长距离传输的方法 | |
CN117220832B (zh) | 一种误码插入方法、装置、系统及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |