CN117407352A - 一种利用McBSP实现异步串口通信的方法 - Google Patents

一种利用McBSP实现异步串口通信的方法 Download PDF

Info

Publication number
CN117407352A
CN117407352A CN202311397358.8A CN202311397358A CN117407352A CN 117407352 A CN117407352 A CN 117407352A CN 202311397358 A CN202311397358 A CN 202311397358A CN 117407352 A CN117407352 A CN 117407352A
Authority
CN
China
Prior art keywords
mcbsp
level
interrupt
serial port
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.)
Pending
Application number
CN202311397358.8A
Other languages
English (en)
Inventor
尚辉
张明明
赵博文
李校南
宋科
张兴凯
高连跃
任凯琦
李智文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
26th Unit 96901 Unit Chinese Pla
Beijing Institute of Computer Technology and Applications
Original Assignee
26th Unit 96901 Unit Chinese Pla
Beijing Institute of Computer Technology and Applications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 26th Unit 96901 Unit Chinese Pla, Beijing Institute of Computer Technology and Applications filed Critical 26th Unit 96901 Unit Chinese Pla
Priority to CN202311397358.8A priority Critical patent/CN117407352A/zh
Publication of CN117407352A publication Critical patent/CN117407352A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)

Abstract

本发明涉及一种利用McBSP实现异步串口通信的方法,属于串口通信领域。本发明根据需要采用的串口通信协议,连接McBSP与电平转换芯片,形成通信线路;配置McBSP为GPIO模式,获取输入输出端口;配置定时器触发中断;初始化中断,将定时器中断与对应的中断处理进行匹配,使定时器每次达到设定值后触发中断调用中断处理;以多倍频的过采样频率采样McBSP的输入口,将电平信号转化为字符信号,实现串口数据输入;以每触发多次为一次来输出字符信号转化为的电平信号,实现串口数据的输出。本发明利用DSP芯片上常见的McBSP实现串口通信,充分利用芯片资源,降低了实现通信的成本,在嵌入式领域能发挥重要作用。

Description

一种利用McBSP实现异步串口通信的方法
技术领域
本发明属于串口通信领域,具体涉及一种利用McBSP实现异步串口通信的方法。
背景技术
串口通信是一种常见的通信方法,当数据经过串行端口发送出去时,字节数据转换为串行的位;在接收数据时,串行的位被转换为字节数据。在串口通信中,常用的协议包括RS-232、RS-422和RS-485等。
在某些DSP芯片上,并没有通用的串口通信接口模块,而DSP芯片时常需要与外界(如上位机)进行通信。因此需要一种方式保证DSP芯片能够与其他设备进行通信。
为了解决这个问题,目前有两种方式可以在无串口功能的DSP芯片上实现串口通信功能。专利号为CN111858450A在DSP芯片上采用McBSP+DMA的通信方式,该方法在发送时需要将数据帧每一位扩展为16比特进行传输,需要芯片带有DMA功能。但有的DSP芯片只有EDMA功能,甚至EDMA和DMA都没有,此外,这种实现方式配置较为复杂,且在硬件连接上也必须将帧同步信号FSR与接收信号DR短接,适用性较低。其他方法采用DSP芯片+FPGA的实现方式,这类方法的硬件设计较为复杂,需要扩展芯片,需对FPGA芯片进行编程,成本较高,功耗更高。
因此,在某些DSP芯片应用中,需要一种便捷的方法能够实时发送和接收数据,实现DSP芯片与上位机之间的串口通信,并能够保证该方法在不同类型的DSP芯片上具备优良的适应性。本发明正式为满足这种现实应用而产生的。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种利用McBSP实现异步串口通信的方法,以解决在无串口功能的DSP芯片上实现串口通信的问题。
(二)技术方案
为了解决上述技术问题,本发明提出一种利用McBSP实现异步串口通信的方法,该方法包括如下步骤:
S1、硬件连接步骤:根据需要采用的串口通信协议,连接DSP芯片的McBSP与电平转换芯片,形成通信线路;
S2、McBSP初始化及配置步骤:配置McBSP为GPIO模式,获取输入输出端口;
S3、定时器初始化及配置步骤:配置定时器触发中断;
S4、中断初始化及配置步骤:初始化中断,将定时器中断与对应的中断处理函数进行匹配,使定时器每次达到设定值后触发中断处理;
S5、中断处理步骤:中断处理函数以多倍频的过采样频率采样McBSP的输入口,将电平信号转化为字符信号,实现串口数据输入;以每触发多次为一次来输出字符信号转化为的电平信号,实现串口数据的输出。
(三)有益效果
本发明提出一种利用McBSP实现异步串口通信的方法,本发明利用DSP芯片上常见的McBSP实现串口通信,充分利用芯片资源,降低了实现通信的成本,在嵌入式领域能发挥重要作用。
附图说明
图1为本发明利用McBSP(多路缓冲串口)实现异步串口通信的方法的流程图;
图2为本发明利用McBSP(多路缓冲串口)实现异步串口通信的方法的硬件连接图。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明涉及一种利用McBSP实现异步串口通信方法,确切的说,在DSP芯片上将McSBP配置为GPIO模式,并依据串口通信协议精确的模拟出发送和接收数据时电路上的高低电平变化,实现异步串口通信。
本发明的目的是:为某些DSP芯片提供一种串口通信方法,并可运用于其他没有串口功能的芯片中,使DSP芯片能够通过串口通信实现与上位机之间的数据收发。
本发明公开了一种利用McBSP(多路缓冲串口)的异步串口通信方法,该方法包括:(1)硬件连接步骤。根据需要采用的串口通信协议,连接McBSP与电平转换芯片,形成通信线路。(2)McBSP初始化及配置步骤。配置McBSP为GPIO模式,获取输入输出端口。(3)定时器初始化及配置步骤。配置定时器触发中断,在指定波特率下,通过多倍频过采样读取输入端口电平信号,依据串口通信协议将电平信号整合为字符数据;同时依据协议向输出端口发送电平信号,达到传输数据的目的。(4)中断初始化及配置步骤。初始化中断,将定时器中断与对应的中断处理进行匹配,使定时器每次达到设定值后触发中断调用中断处理。(5)中断处理步骤。以多倍频的过采样频率采样McBSP的输入口,将电平信号转化为字符信号,实现串口数据输入;以每触发多次为一次来输出字符信号转化为的电平信号,实现串口数据的输出。本发明利用DSP芯片上常见的McBSP实现串口通信,充分利用芯片资源,降低了实现通信的成本,在嵌入式领域能发挥重要作用。
为实现上述目的,本发明提出了一种利用McBSP实现异步串口通信的方法,该方法包括:
S1、硬件连接步骤:根据需要采用的串口通信协议,连接DSP芯片的McBSP与电平转换芯片,形成通信线路;
S2、McBSP初始化及配置步骤:配置McBSP为GPIO模式,获取输入输出端口;
S3、定时器初始化及配置步骤:配置定时器触发中断,在指定波特率下,通过多倍频过采样读取输入端口电平信号,依据串口通信协议将电平信号整合为字符数据;同时依据协议向输出端口发送电平信号,达到传输数据的目的;
S4、中断初始化及配置步骤:初始化中断,将定时器中断与对应的中断处理函数进行匹配,使定时器每次达到设定值后触发中断处理。
S5、中断处理步骤:中断处理函数以多倍频的过采样频率采样McBSP的输入口,将电平信号转化为字符信号,实现串口数据输入;以每触发多次为一次来输出字符信号转化为的电平信号,实现串口数据的输出。
图1是一种利用McBSP实现异步串口通信的方法的流程图。如图1所示,本发明包括以下步骤:
(1)硬件连接步骤。根据需要采用的串口通信协议,连接DSP芯片多路缓冲串口McBSP与电平转换芯片,形成通信线路
具体实施时,DSP芯片采用TMS320C6713,该芯片上无串口通讯模块,将DSP芯片的McBSP配置为GPIO口后,输出的电压为TTL电平,上位机通过串口通信可以采用RS232或RS485电平,具体由单端传输或差分传输来确定。如果采用RS232电平,需要采用电平转换芯片将TTL电平转化为RS232电平,如果采用RS485电平,需要采用电平转换芯片将TTL电平转化为RS485电平,见表1。
表1TTL电平标准与RS232电平标准
具体实施时,电平转换芯片可以采用CH340芯片。McBSP和CH340的连接如图2所示,图2中的UART为CH340。将McBSP的DR接收管脚、TX发送管脚连接至CH340转换芯片的Tx发送引脚和Dr接收引脚,用于将TTL电平转换为RS232电平。
McBSP最多可以配置3对GPIO口,即可为无串口的DSP芯片拓展出3个串口模块。
(2)McBSP初始化及配置步骤。配置McBSP为GPIO模式,获取输入输出端口。
具体实施时,初始化DSP的CSL库,并配置McBSP为GPIO模式。需要将SPCR寄存器的RRST和XRST字段设置为0,将PCR寄存器的RION和XION字段设置为1,被设置为通用GPIO的输入端口为DR管脚,输出端口为DX管脚,管脚的电平高低取决于PCR寄存器DX_STAT和DR_STAT字段的01赋值。具体配置见表2。
表2作为通用I/O的McBSP管脚配置
具体实施时,为维持RS-232协议线路上没有数据发送时电路上位高电平,在初始化McBSP时,将MCSBP的DX_STAT字段先设置为1,使DX管脚为高电平,发送线路为高电平。
(3)定时器初始化及配置步骤。配置定时器触发中断,用于在指定波特率下,通过多倍频过采样读取输入端口电平信号,依据串口通信协议将电平信号整合为字符数据;同时依据协议向输出端口发送电平信号,达到传输数据的目的。
具体实施时,由于在115200bps速率下,传输1比特数据需要8680ns。因此,首先将DSP芯片的工作频率25MHz倍频,直接对DSP芯片内部的锁相环倍频控制寄存器赋值为10,将工作频率提升至250MHz;然后将定时器的周期寄存器赋值为0x00000036。原因在于,定时器工作频率为主频250Mhz的1/4,定时器的计数寄存器递增1需要16ns,计数寄存器达到周期寄存器的数值后,会触发中断处理并重新置为0。为保证10倍采样频率,周期寄存器的值为:(8680/10)/16=54.25≈0x36。
(4)中断初始化及配置步骤。初始化中断,将定时器中断与对应的中断处理进行匹配,使定时器每次达到设定值后触发中断处理。
具体实施时,TMS320C6713芯片上默认第一个定时器的中断对应第14号中断,将定时器中断对应好14号中断后,启动全局定时器中断。
(5)中断处理步骤。以多倍频的过采样频率采样McBSP的输入口,将电平信号转化为字符信号,实现串口数据输入;以每触发多次为一次来输出字符信号转化为的电平信号,实现串口数据的输出。
具体实施时,中断处理用中断服务函数实现。在115200bps速率下,以10倍频的过采样频率采样McBSP的输入口,将电平信号转化为字符信号,实现串口数据输入;以每触发10次为一次来输出字符信号转化为发送线路上的电平信号,实现串口数据的输出。期间字符转电平高低的方式依据串口通信协议来定,采用1个起始位,8个数据位,1-2个停止位来发送或接收字符,线路空闲时,线路上为高电平信号。中断服务函数每次执行时,会判断两个全局变量发送Send_flag和接收Recv_flag是否有效。一般接收Recv_flag一直处于有效状态,能够实时接收上位机发来的数据,并将数据存在全局接收数据缓冲区中;发送时根据是否有发送需求,选择性的将Send_Flag置为有效或无效,发送完毕后将Send_Flag置为无效,并在有数据发送需求时再次置为有效。以此达到异步通信的功能。
中断服务函数中的接收处理函数用于采样接收单个电平信号,每次读取McBSP的DR_STAT字段,获取串口发送来的数据,当检测到低电平时获取字符的起始位,并通过过采样,采样10次,若有5次为同一个电平信号,则判断该比特为0或者1,按次步骤接收后续八个数据位,最后获取停止位的数据。若在采样后续八个数据位的时间内没有接收到八个稳定数据位,便重新检测低电平起始位。接收处理函数将电平信号转化为字符并放入接收缓冲区。
中断服务函数中的发送处理函数用于控制中断服务函数单个字符的发送,中断服务函数每次发送一比特数据,并通过移位操作发送下一比特数据。为维持数据的稳定,最后加上停止位后再续上一段次数的高电平,直至发送完该字符对应的01比特,并按此方式发送后续字符。
实施例2:
一种利用McBSP实现异步串口通信的方法,包括以下步骤:
(1)硬件连接步骤。
(2)McBSP初始化及配置步骤。
(3)定时器初始化及配置步骤。
(4)中断初始化及配置步骤。
(5)中断处理步骤。
进一步地,在步骤(1)中,
DSP芯片McBSP连接电平转换芯片CH340芯片,将TTL电平转换为RS232电平。
进一步地,在步骤(2)中,
配置McBSP为GPIO模式。
进一步地,在步骤(3)中,
在串口RS232的115200bps速率下,DSP芯片的工作频率设置为250MHz,定时器的周期寄存器赋值为0x00000036。
进一步地,在步骤(5)中,
中断处理采用过采样方式,根据奈奎斯特采样定理进行范围内调整。在115200bps速率下,以10倍频(即间隔868ns)的过采样频率采样McBSP的输入口,将电平信号转化为字符信号,实现串口数据输入;以每触发10次为一次(即间隔8680ns)来输出字符信号转化为的电平信号,实现串口数据的输出。
本发明利用DSP芯片上常见的McBSP实现串口通信,充分利用芯片资源,降低了实现通信的成本,在嵌入式领域能发挥重要作用。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (10)

1.一种利用McBSP实现异步串口通信的方法,其特征在于,该方法包括如下步骤:
S1、硬件连接步骤:根据需要采用的串口通信协议,连接DSP芯片的McBSP与电平转换芯片,形成通信线路;
S2、McBSP初始化及配置步骤:配置McBSP为GPIO模式,获取输入输出端口;
S3、定时器初始化及配置步骤:配置定时器触发中断;
S4、中断初始化及配置步骤:初始化中断,将定时器中断与对应的中断处理函数进行匹配,使定时器每次达到设定值后触发中断处理;
S5、中断处理步骤:中断处理函数以多倍频的过采样频率采样McBSP的输入口,将电平信号转化为字符信号,实现串口数据输入;以每触发多次为一次来输出字符信号转化为的电平信号,实现串口数据的输出。
2.如权利要求1所述的利用McBSP实现异步串口通信的方法,其特征在于,DSP芯片采用TMS320C6713。
3.如权利要求2所述的利用McBSP实现异步串口通信的方法,其特征在于,所述步骤S1具体包括:DSP芯片上无串口通讯模块,将DSP芯片的McBSP配置为GPIO口后,输出的电压为TTL电平,上位机通过串口通信采用RS232或RS485电平,具体由单端传输或差分传输来确定,如果采用RS232电平,采用电平转换芯片将TTL电平转化为RS232电平,采用RS485电平,采用电平转换芯片将TTL电平转化为RS485电平。
4.如权利要求3所述的利用McBSP实现异步串口通信的方法,其特征在于,电平转换芯片采用CH340芯片,McBSP和CH340的连接方式为:将McBSP的DR接收管脚、TX发送管脚连接至CH340转换芯片的Tx发送引脚和Dr接收引脚,用于将TTL电平转换为RS232电平。
5.如权利要求3所述的利用McBSP实现异步串口通信的方法,其特征在于,McBSP最多能配置3对GPIO口,即为无串口的DSP芯片拓展出3个串口模块。
6.如权利要求1-5任一项所述的利用McBSP实现异步串口通信的方法,其特征在于,所述步骤S2具体包括:初始化DSP的CSL库,并配置McBSP为GPIO模式,将SPCR寄存器的RRST和XRST字段设置为0,将PCR寄存器的RION和XION字段设置为1,被设置为通用GPIO的输入端口为DR管脚,输出端口为DX管脚,管脚的电平高低取决于PCR寄存器DX_STAT和DR_STAT字段的01赋值。
7.如权利要求6所述的利用McBSP实现异步串口通信的方法,其特征在于,为维持RS-232协议线路上没有数据发送时电路上位高电平,在初始化McBSP时,将MCSBP的DX_STAT字段先设置为1,使DX管脚为高电平,发送线路为高电平。
8.如权利要求6所述的利用McBSP实现异步串口通信的方法,其特征在于,所述步骤S3具体包括:由于在115200bps速率下,传输1比特数据需要8680ns,首先将DSP芯片的工作频率25MHz倍频,直接对DSP芯片内部的锁相环倍频控制寄存器赋值为10,将工作频率提升至250MHz;然后将定时器的周期寄存器赋值为0x00000036。
9.如权利要求8所述的利用McBSP实现异步串口通信的方法,其特征在于,所述步骤S4具体包括:DSP芯片上默认第一个定时器的中断对应第14号中断,将定时器中断对应好14号中断后,启动全局定时器中断。
10.如权利要求9所述的利用McBSP实现异步串口通信的方法,其特征在于,所述步骤S5具体包括:
中断处理用中断服务函数实现;在115200bps速率下,以10倍频的过采样频率采样McBSP的输入口,将电平信号转化为字符信号,实现串口数据输入;以每触发10次为一次来输出字符信号转化为发送线路上的电平信号,实现串口数据的输出;期间字符转电平高低的方式依据串口通信协议来定,采用1个起始位,8个数据位,1-2个停止位来发送或接收字符,线路空闲时,线路上为高电平信号;中断服务函数每次执行时,会判断两个全局变量发送Send_flag和接收Recv_flag是否有效;接收Recv_flag一直处于有效状态,能够实时接收上位机发来的数据,并将数据存在全局接收数据缓冲区中;发送时根据是否有发送需求,选择性的将Send_Flag置为有效或无效,发送完毕后将Send_Flag置为无效,并在有数据发送需求时再次置为有效;以此达到异步通信的功能;
中断服务函数中的接收处理函数用于采样接收单个电平信号,每次读取McBSP的DR_STAT字段,获取串口发送来的数据,当检测到低电平时获取字符的起始位,并通过过采样,采样10次,若有5次为同一个电平信号,则判断该比特为0或者1,按次步骤接收后续八个数据位,最后获取停止位的数据;若在采样后续八个数据位的时间内没有接收到八个稳定数据位,便重新检测低电平起始位;接收处理函数将电平信号转化为字符并放入接收缓冲区;
中断服务函数中的发送处理函数用于控制中断服务函数单个字符的发送,中断服务函数每次发送一比特数据,并通过移位操作发送下一比特数据;为维持数据的稳定,最后加上停止位后再续上一段次数的高电平,直至发送完该字符对应的01比特,并按此方式发送后续字符。
CN202311397358.8A 2023-10-26 2023-10-26 一种利用McBSP实现异步串口通信的方法 Pending CN117407352A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311397358.8A CN117407352A (zh) 2023-10-26 2023-10-26 一种利用McBSP实现异步串口通信的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311397358.8A CN117407352A (zh) 2023-10-26 2023-10-26 一种利用McBSP实现异步串口通信的方法

Publications (1)

Publication Number Publication Date
CN117407352A true CN117407352A (zh) 2024-01-16

Family

ID=89497577

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311397358.8A Pending CN117407352A (zh) 2023-10-26 2023-10-26 一种利用McBSP实现异步串口通信的方法

Country Status (1)

Country Link
CN (1) CN117407352A (zh)

Similar Documents

Publication Publication Date Title
CA1287905C (en) Method and apparatus for detecting a rate of data transmission
GB2246494A (en) Method and apparatus for serial communications
US9825754B2 (en) Independent UART BRK detection
US20200142854A1 (en) Multilane heterogeneous serial bus
US5564061A (en) Reconfigurable architecture for multi-protocol data communications having selection means and a plurality of register sets
CN112835825A (zh) 具有多模调制的增强虚拟gpio
CN114003541A (zh) 一种通用型iic总线电路及其传输方法
CN117407352A (zh) 一种利用McBSP实现异步串口通信的方法
CN114442514A (zh) 一种基于fpga的usb3.0/3.1控制系统
Laddha et al. Implementation of serial communication using UART with configurable baud rate
CN106227691B (zh) 一种基于mcu之间的对等双向单线串行通信方法
CN112817895B (zh) 一种基于gpio的通信方法
Cao et al. Working principle and application analysis of UART
CN210955040U (zh) 用于机器人控制器的可扩展的io模块组件
CN113891537A (zh) 通过电脑模拟数字调光协议时序逻辑的方法、装置及介质
CN111431973B (zh) 基于uart的面向计算机系统实践教学的程序在线下载系统和方法
CN210804414U (zh) 一种通讯接口可复用的电路
US10425268B2 (en) UART with line activity detector
Gupta et al. Analysis of Universal Asynchronous Receiver-Transmitter (UART)
CN111818699B (zh) 一种rgb-led光源的控制方法和控制电路
CN111352893B (zh) 一种fpga和stm32单片机的通信方法
CN110768879B (zh) 通讯控制链路
CN209842606U (zh) 一种支持与多个从设备快速通讯的spi主设备
CN115422117A (zh) 一种低成本芯片间可靠通讯方法
EP2637105A1 (en) Communication device, method and system

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