芯教程丨平头哥助力中科昊芯HX2000系列芯片之SCI串口通信专题(一)FIFO通信

随着能源需求的日益短缺,科技的日趋智能化,高效便捷的通信模式已日趋成为人们生产生活的必然趋势,中科昊芯顺应时代要求,推出适用于高精度工业自动化运动控制的新版hxs320f28034数字信号处理器dsp,其sci模块两大主要功能:fifo通信、自动波特率分别以多种字节延迟周期配置与传输波特率适配多种缓慢uart串行外设通信,可更有效助力于工程师实现高效便捷指令收发与实时反馈数据接收显示,典型应用如下图。
pc端通过串行数据总线,与uart串口通信模块,向dsp端发送位置控制指令,采用《平头哥cdk助力中科昊芯hx2000系列芯片之双电机有感foc控制系统专题(四)拓展:永磁电机三闭环有感伺服控制》系统输出pwm波,驱动mosfet/igbt逆变,控制pmsm实现三闭环有感伺服控制,系统端反馈信号通过sci模块接收,由dsp通过uart串口通信,向pc端连续发送反馈数据,通过“labview”等调试软件实时读取显示,将更有效助力于工程师完成实时高效的在线调试。
自平头哥半导体有限公司的剑池集成开发环境(简称“cdk”)支持hx2000系列芯片调试以来,本期推出专题讲解sci串口通信,分为三期讲解,本期主要讲解sci串口fifo通信原理,sci串口自动波特率与fifo中断逻辑将在后续两期内容中逐步介绍。
hx2000系列sci模块原理如下图所示,通过系统sysclk的低速时钟lspclk,配置sci传输波特率。通过sciffct延迟寄存器,可配置字传输间延迟,0到256个波特时钟周期,以匹配多种缓慢的sci/uart通信传输延迟。通过scifftx[sciffena]使能,可选择sci工作于fifo模式,其发送、接收与读取过程如下:
(1)发送过程:dsp端通过cpu,将数据装载到发送端tx_fifo寄存器。装载的数据将存放在发送缓冲寄存器scitxbuf中。使能发送txena信号,通过txshf移位寄存器,逐步将scitxbuf中的数据,移位到scitxd引脚上。通过gpiomux配置发送scitxd引脚,通过ch430等串行数据传输线向pc发送数据,以实现发送功能。
(2)接收过程:通过gpiomux配置scirxd引脚,使得dsp端接收,pc端通过ch430等串行数据传输线发送的数据。使能接收rxena信号,通过rxshf移位寄存器,逐步将接收数据,移位到接收数据缓冲寄存器scirxbuf。通过cpu将接收的数据,装载到接收rx_fifo寄存器中,以实现接收功能。
(3)读取过程:通过sciffrx[rxffst]可判断,当前是否接收到相应字节深度的数据,以便于cpu读取接收到的数据。
由此设计sci串口fifo通信实例:采用sci与串口ch340,通过串口调试助手,向cpu发送任意一组4字节数据,cpu接收所发送的数据,硬件连接如下图所示:
实例所采用软硬件开发环境详见上一篇推文《芯教程|平头哥助力中科昊芯hx2000系列芯片之hrcap高精度脉冲捕获》。
基于以上分析,在cdk上开发sci串口fifo通信输出程序,代码包括:sci gpio外设引脚配置,fifo功能配置程序,发送与接收程序,主程序调用执行。主要代码如下:
                                 1.int main(void)2.{ 3.    /*初始化系统控制*/4.    initsysctrl();5.    /*初始化内存控制寄存器,使能内存流水线模式*/6.    initflash();7.    /*初始化串口通信的gpio口:gpio28: scirxda,gpio29: scitxda*/8.    initscigpio();9.    /*sci寄存器fifo功能配置*/10.    scia_config(9600);11.    /*通过sci发送字符串*/12.    scia_print(----------- sci fifo test ------------\r\n);13.    scia_print(baud rate: 9600\r\n);14.    scia_print(data bits: 8\r\n);15.    scia_print(parity:    none\r\n);16.    scia_print(stop bits: 1\r\n);17.    scia_print(\r\n);18.    scia_print(please send some message, (level: 4)\r\n);19.    for (;;)20.    {21.      /*判断sci是否接收到4字节数据,以便于cpu读取数据*/22.      if(sciaregs.sciffrx.bit.rxffst == 4)23.      {24.       for(i = 0; i < 4; i++)25.       {26.          receivedata[i] = sciaregs.scirxbuf.bit.rxdt;27.       }28.       scia_print((char*)receivedata);29.       scia_print(\r\n);30.      }31. }32. return 0;33.}cdk上开发sci串口fifo通信程序,
其编译结果为:
编译通过后,可以开始调试了,其调试结果为:
调试后,可通过串口调试助手查看发送与接收到的数据与停止位状态如下图:
关于中科昊芯
“智由芯生 创享未来”,中科昊芯是数字信号处理器专业供应商。作为中国科学院科技成果转化企业,瞄准国际前沿芯片设计技术,依托多年积累的雄厚技术实力及对产业链的理解,以开放积极的心态,基于开源指令集架构risc-v,打造多个系列数字信号处理器产品,并构建完善的处理器产品生态系统。产品具有广阔的市场前景,可广泛应用于工业控制及电机驱动、数字电源、光伏、储能、新能源汽车、消费电子、白色家电等领域。

功率放大器基于固态磁场传感器的脉冲涡流中的应用
5GC和5GCN的架构和特性是什么?它们有什么区别​?
苹果指向15英寸超薄笔记本
深挖新能源车企“痛点”:石墨烯电池噱头远大于价值
小红书电商之魂不灭,内测小红店欲搅乱社交电商?
芯教程丨平头哥助力中科昊芯HX2000系列芯片之SCI串口通信专题(一)FIFO通信
国产4G叫好不叫座,不能商用错失良机
英特尔与高通争夺5G霸权 两大巨头有何不同
三类可以促进催化降解性能的原电池结构
国外硬件工程师曝光山寨iPhone充电器设计缺陷
openharmony研究组
和林科技主营精微电子零部件领域、半导体芯片测试探针领域
弱电工程双绞线常见问题解答来啦
什么是串货相机
关于一种高精度高温度稳定性恒流源的分析和介绍以及应用
成都青白江海关运用RFID等技术推进智慧海关建设
储能系统要想安全?必须要做到这13个关键点!
部署普罗米修斯(Prometheus)监控平台前需考虑的六大因素
西门子MES Opcenter流程行业套件的系统集成
华米Amazfit GTR 42mm智能手表新配色正式开售支持NFC公交卡功能