0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

标准SCI模式下的奇偶校验

OH9y_HAAWKING20 来源:中科昊芯 作者:中科昊芯 2022-10-13 11:54 次阅读

随着能源需求的日益短缺,科技的日趋智能化,高效精准的通信模式已日趋成为人们生产生活的必然趋势,昊芯顺应时代要求,推出适用于高精度工业自动化运动控制的HXS320F28034数字信号处理器,其SCI模块有标准模式和增强FIFO模式,这两种模式均可通过奇偶校验,校验收发数据的一致性,从而更有效助力于工程师实现高效精准闭环控制,于广泛应用于电动车、电动汽车、轨道交通、全电飞机、新能源发电、机器人工业自动化高精度控制领域。

自平头哥半导体有限公司的剑池集成开发环境(简称“CDK”)支持HX2000系列芯片调试以来,本期推出专题讲解SCI串口通讯奇偶校验,分为两期讲解,本期主要讲解标准SCI模式下的奇偶校验,增强FIFO模式下的奇偶校验将在下期展开介绍。

HX2000系列SCI模块与中断框图如下,可通过SCICCR[PARITYENA]使能,启动奇偶校验,采用SCICCR[PARITY]选择,使用奇或偶校验,对每个字符增加一个额外的校验位,以校验收发数据的二进制码中“1”的个数,校验收发数据的一致性,原理如下:

c3889d44-4a93-11ed-a3b6-dac502259ad0.jpgc3e168fc-4a93-11ed-a3b6-dac502259ad0.jpg

(1)SCICCR[PARITY]=0时,采用奇校验,即8位字符数据位中“1”的数目为偶数,校验位为“1”,若为奇数,则校验位为“0”。

(2)SCICCR[PARITY]=1时,采用偶校验,即8位字符数据位中“1”的数目为偶数,校验位为“0”,若为奇数,则校验位为“1”。

(3)标准SCI模式下,收发数据的校验位不一致时,硬件会将SCIRXST[PE]位置1表示SCI奇偶校验错误,将SCIRXST[RXERROR]位置1表示SCI接收错误标志,可通过SCICTL1[RXERRINTENA]使能,打开接收错误中断线,触发PIE向CPU发出RXINT中断信号,从而触发执行接收错误中断服务程序。

典型应用一:

下图为PMSM三环伺服控制系统,其人机界面交互通讯是通过SCI模块实现的:PC端通过SCI模块,向DSP端发送位置控制指令,三闭环有感伺服控制系统通过位置指令及位置反馈数据计算输出PWM占空比值;伺服系统的运行数据通过SCI模块发送给PC端,PC端通过labview等调试软件接收数据进行实时读取显示。为保证系统在运行过程中数据传输的准确性,本设计采用了奇偶校验。

c41e6428-4a93-11ed-a3b6-dac502259ad0.jpg

典型应用二:

采用SCI与串口CH340,通过串口调试助手,向CPU发送任意一字节数据,CPU接收所发送的数据,采用奇校验,校验收发数据的一致性,不一致时触发接收错误中断,点亮LED灯GPIO44,硬件连接如下图所示:

c474007c-4a93-11ed-a3b6-dac502259ad0.jpg

基于以上分析,在CDK上开发标准SCI串口通信校验程序,代码包括:SCI GPIO外设引脚配置,标准SCI功能与校验配置程序,发送、接收与校验程序,主程序调用执行。主要代码如下:

1.intmain(void)
2.{
3./*初始化系统控制*/
4.InitSysCtrl();
5./*初始化内存控制寄存器,使能内存流水线模式*/
6.InitFlash();
7./*初始化串口通信的GPIO口:GPIO28: SCIRXDA,GPIO29: SCITXDA*/
8.InitSciGpio();
9./*初始化LED,用于标识奇偶与帧格式校验错误*/
10.InitLED();
11.
12./*关闭PIE中断*/
13.InitPieCtrl();
14./*清除中断标志位*/
15.IER=0x0000;
16.IFR=0x0000;
17./*初始化PIE中断向量表*/
18.InitPieVectTable();
19.
20.EALLOW;
21./*中断向量表入口地址SCIRXINTA,指向执行接收校验程序*/
22.PieVectTable.SCIRXINTA=&sciaRxIsr;
23.EDIS;
24.
25./*打开相应的PIE中断线*/
26.IER|=M_INT9;
27./*PIEGroup9,SCIRXINTA*/
28.PieCtrlRegs.PIEIER9.bit.INTx1=1;
29.
30./*标准SCI配置:含奇偶校验*/
31.Scia_Config(9600);
32.
33./*使能外部中断和CPU中断*/
34.EINT;
35.while(1)
36.{
37./*当数据接收成功时,发送返回数据*/
38.if(SciaRegs.SCIRXST.bit.RXRDY==1)
39.{
40./*SCI发送:返回接收数据*/
41.Scia_Send(SciaRegs.SCIRXBUF.bit.RXDT);
42.}
43.}
44.return0;
45.}

CDK上开发标准SCI串口通信校验程序,编译结果为:

c49d8f64-4a93-11ed-a3b6-dac502259ad0.jpg

编译通过后,就可开始调试了,调试后,可通过串口调试助手查看发送与接收到的数据:

c4b9bf90-4a93-11ed-a3b6-dac502259ad0.jpg

收发数据的校验位不一致时,触发RXINT中断信号,根据SciaRegs[SCIRXST]中错误置位类型,点亮LED灯GPIO44,效果如下:

c52eec16-4a93-11ed-a3b6-dac502259ad0.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 串口通讯
    +关注

    关注

    1

    文章

    249

    浏览量

    24545
  • SCI
    SCI
    +关注

    关注

    1

    文章

    53

    浏览量

    19950
  • 奇偶校验
    +关注

    关注

    0

    文章

    15

    浏览量

    8165
  • 平头哥
    +关注

    关注

    0

    文章

    62

    浏览量

    8931
  • 中科昊芯
    +关注

    关注

    5

    文章

    73

    浏览量

    5051

原文标题:芯教程|平头哥助力昊芯HX2000系列芯片专题SCI串口通讯奇偶校验(一)标准SCI

文章出处:【微信号:HAAWKING2019,微信公众号:中科昊芯】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何实现一种基于FPGA的奇偶校验器设计?

    奇偶校验是一种简单、实现代价小的检错方式,常用在数据传输过程中。对于一组并行传输的数据(通常为8比特),可以计算岀它们的奇偶校验位并与其一起传输。
    发表于 09-05 10:38 475次阅读
    如何实现一种基于FPGA的<b class='flag-5'>奇偶校验</b>器设计?

    奇偶校验

    奇偶校验码   奇偶校验码是一种开销最小,能发现数据代码中一位出错情况的编码,常用于存储器读写检查,或ASCII字符、其它类
    发表于 10-13 16:42 4750次阅读

    奇偶校验器,奇偶校验器是什么意思

    奇偶校验器,奇偶校验器是什么意思 奇偶校验器定义 为了系统的可靠性,对于位数
    发表于 03-08 17:32 2057次阅读

    奇偶校验码,奇偶校验码原理是什么?

    奇偶校验码,奇偶校验码原理是什么? 奇偶校验码是奇校验码和偶校验码的统称,是一种最基本的检错码。它是由n-1位信息元和1位
    发表于 03-17 17:39 6.2w次阅读

    奇偶校验器_奇偶校验设计程序

    本内容提供了奇偶校验器_奇偶校验设计的程序代码,希望对大家有帮助
    发表于 11-11 10:04 5501次阅读

    stm32串口奇偶校验

    STM32串口通信使用奇偶校验的时候应该设置数据位长度9bit,奇偶校验是硬件完成的,并且stm32用校验位时,数据位要选9位,8位会出现故障可能。
    的头像 发表于 07-23 09:26 9921次阅读

    stm32 usart奇偶校验如何配置

    stm32 usart奇偶校验如何配置?或许你在stm32 usart奇偶校验过程中会遇到如下一些坑,stm32 usart偶校验错误标志位以及出现偶校验错误,
    的头像 发表于 07-23 09:55 6687次阅读
    stm32 usart<b class='flag-5'>奇偶校验</b>如何配置

    增强FIFO模式下的奇偶校验

    自昊芯推出专题讲解SCI串口通讯奇偶校验,分为两期讲解,上期主要讲解标准SCI模式下的奇偶校验
    的头像 发表于 11-02 09:30 719次阅读

    芯教程|平头哥助力昊芯HX2000系列芯片专题SCI串口通讯奇偶校验(一)标准SCI

    模块有标准模式和增强FIFO模式,这两种模式均可通过奇偶校验校验收发数据的一致性,从而更有效助
    的头像 发表于 10-14 09:26 509次阅读
    芯教程|平头哥助力昊芯HX2000系列芯片专题<b class='flag-5'>SCI</b>串口通讯<b class='flag-5'>奇偶校验</b>(一)<b class='flag-5'>标准</b><b class='flag-5'>SCI</b>

    芯教程|平头哥助力昊芯HX2000系列芯片专题SCI串口通讯奇偶校验(二)SCI增强FIFO

    自昊芯推出专题讲解SCI串口通讯奇偶校验,分为两期讲解,上期主要讲解标准SCI模式下的奇偶校验
    的头像 发表于 11-08 10:08 405次阅读
    芯教程|平头哥助力昊芯HX2000系列芯片专题<b class='flag-5'>SCI</b>串口通讯<b class='flag-5'>奇偶校验</b>(二)<b class='flag-5'>SCI</b>增强FIFO

    奇偶校验器的设计方法和特点

    奇偶校验是一种简单、实现代价小的检错方式,常用在数据传输过程中。对于一组并行传输的数据(通常为8比特),可以计算岀它们的奇偶校验位并与其一起传输。接收端根据接收的数据重新计算其奇偶校验位并与接收
    的头像 发表于 09-05 10:40 1176次阅读
    <b class='flag-5'>奇偶校验</b>器的设计方法和特点

    什么是奇偶校验 奇偶校验的基本原理 奇偶校验电路什么意思

    什么是奇偶校验 奇偶校验的基本原理 奇偶校验电路什么意思  奇偶校验是一种用于检测二进制数据中错误的方法。它的基本原理是在二进制数据的末尾添加一个额外的位,使得数据中二进制 1 的数量
    的头像 发表于 10-17 16:16 2680次阅读

    什么是奇偶校验电路?奇偶校验器是时序逻辑电路吗?

    什么是奇偶校验电路?奇偶校验器是时序逻辑电路吗? 奇偶校验电路是一种数字电路,在数据传输过程中用于检测数据是否发生错误。在每个数据字节(通常是8位)的最高位添加一位(偶校验)或两位(奇
    的头像 发表于 10-17 16:16 2632次阅读

    什么是奇校验和偶校验?常见的奇偶校验方式有哪些?

    什么是奇校验和偶校验?常见的奇偶校验方式有哪些? 1. 奇偶校验是指在数字通信中采用一种技术对传输的数据进行校验。由于数字信号传输容易受到干
    的头像 发表于 10-17 16:28 7841次阅读

    奇偶校验和crc校验的区别 CRC校验奇偶校验之间有什么关系?

    奇偶校验和crc校验的区别 CRC校验奇偶校验之间有什么关系? 奇偶校验和 CRC(Cyclic Redundancy Check)
    的头像 发表于 10-17 16:28 2463次阅读