CN107291647A - Dsp读取扩展串口中接收通道数据的方法 - Google Patents

Dsp读取扩展串口中接收通道数据的方法 Download PDF

Info

Publication number
CN107291647A
CN107291647A CN201710356711.6A CN201710356711A CN107291647A CN 107291647 A CN107291647 A CN 107291647A CN 201710356711 A CN201710356711 A CN 201710356711A CN 107291647 A CN107291647 A CN 107291647A
Authority
CN
China
Prior art keywords
data
receiving channel
serial port
dsp
interrupt
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.)
Granted
Application number
CN201710356711.6A
Other languages
English (en)
Other versions
CN107291647B (zh
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.)
Changchun Institute of Optics Fine Mechanics and Physics of CAS
Original Assignee
Changchun Institute of Optics Fine Mechanics and Physics of CAS
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 Changchun Institute of Optics Fine Mechanics and Physics of CAS filed Critical Changchun Institute of Optics Fine Mechanics and Physics of CAS
Priority to CN201710356711.6A priority Critical patent/CN107291647B/zh
Publication of CN107291647A publication Critical patent/CN107291647A/zh
Application granted granted Critical
Publication of CN107291647B publication Critical patent/CN107291647B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

DSP读取扩展串口中接收通道数据的方法,涉及嵌入式计算机领域,解决现有DSP与扩展串口芯片进行数据交互时,存在只能采用轮询模式或边沿触发中断模式,导致接收通道的数据帧频较高时很容易丢帧以及由于无法读取接收通道中的数据造成数据通道失效等问题,该方法采用中断模式和轮询模式相结合的方式,将相应扩展串口接收通道FIFO中的数据,按照特定的方式存储在专用数组里。该方法解决了单独采用轮询模式的时间不确定性和接收通道数据高帧频下丢帧的问题,也避免了单独采用中断模式而导致在接收通道数据高帧频下接收通道失效的问题。两种模式的有机结合使得DSP能快速处理接收通道的数据,极大提高了扩展串口的可靠性。

Description

DSP读取扩展串口中接收通道数据的方法
技术领域
本发明涉及嵌入式计算机领域,具体涉及一种DSP读取扩展串口中接收通道数据的方法。
背景技术
现有的数字信号处理芯片(以下简称DSP)只含有1~3个UART(通用异步收发器),URAT的信号经过不同的串行通信协议驱动芯片形成不同的串行通信协议标准接口(以下简称串口)。当DSP要与多个串口设备(大于其自带的串口数量)进行通信时,需要对其进行串口扩展。
串口扩展多采用专用集成电路。串口扩展芯片与DSP相连接,由DSP控制串口扩展芯片的数据收发等操作。由于DSP的外触发中断管脚数量有限,通常采取多个扩展串口通道的接收中断信号经过逻辑或之后连接到DSP的一个外触发中断管脚上。某些型号DSP或单片机外触发中断没有电平触发功能,只有边沿触发功能。这些类型的DSP从扩展串口芯片中读取相应接收通道的数据只能采用轮询模式或边沿触发中断模式。轮询模式操作简单,但响应慢、效率低和时间不确定性,当接收通道的数据帧频较高时很容易丢帧。边沿触发中断模式响应快,但当多个扩展串口接收通道的数据帧频都较高时,由于数据读取需要占用一定的时间,就会导致某些通道串口中断得不到及时处理,这些接收通道中断管脚的电平无法得到有效的复位,导致这些通道永久性失去触发DSP外部中断的功能,从而导致在中断模式下无法读取这些接收通道中的数据,造成该通道失效。
发明内容
本发明为解决现有DSP与扩展串口芯片进行数据交互时,存在只能采用轮询模式或边沿触发中断模式,导致接收通道的数据帧频较高时很容易丢帧以及由于无法读取接收通道中的数据造成数据通道失效等问题,提供一种DSP读取扩展串口中接收通道数据的方法。
DSP读取扩展串口中接收通道数据的方法,该方法由以下步骤实现:
步骤一、对DSP以及扩展串口专用集成电路进行初始化;
步骤二、初始化后的DSP同时开启中断模式和轮询模式,如果中断条件满足,则进入中断服务程序,如果轮询条件满足,则进入轮询处理程序。
所述进入中断模式或轮询模式中的程序执行方式相同,具体为:
扫描各扩展串口接收通道对应的触发中断管脚的电平状态,若该通道管脚电平状态与中断触发时的电平状态一致,则查询该通道接收FIFO中的数据个数,然后将FIFO中所有数据读取并保存至用于该通道的专用数组中;若该通道管脚电平状态与中断触发时的电平状态不一致,则对该通道无任何操作;
步骤三、将步骤二中读取各扩展串口接收通道的数据保存在专用数组中,具体为:
设定专用数组中已存在数据起点为P,终点为Q,数据长度为M,即P+M=Q;专用数组起点为0,终点为F-1,长度为F,且存在如下关系0≤P≤Q≤F-1;专用数组中已存在数据终点位置Q与该扩展串口接收通道FIFO中数据长度N之和为Q+N;
若Q+N≤F-1,则保持专用数组中已存在数据的起点位置P值不变,将接收通道FIFO中的所有数据顺序保存至专用数组中已存在数据终点位置Q之后,并将专用数组中已存在数据终点位置更新为Q+N;
若Q+N>F-1,则将专用数组中已存在数据整体往零点位置移动距离为Q+N-F+1,此时已存在数据的起点为P-Q-N+F-1,已存在数据的终点为F-1-N;
若P-Q-N+F-1≥0,则将接收通道FIFO中的所有数据顺序保存至专用数组中已存在数据终点位置F-1-N之后,并将专用数组中已存在数据终点位置修改为F-1,起点值P-Q-N+F-1保持不变;
若P-Q-N+F-1<0且F-1-N≥0,则将接收通道FIFO中的所有数据顺序保存至专用数组中已存在数据终点位置F-1-N之后,并将专用数组中已存在数据终点位置修改为F-1,起点值修改为0;
若P-Q-N+F-1<0且F-1-N<0,则专用数组的长度F小于扩展串口接收通道FIFO中数据长度N,则程序结束。
本发明的有益效果:本发明所述的方法采用中断模式和轮询模式相结合的方式,将相应扩展串口接收通道FIFO中的数据,按照特定的方式存储在专用数组里。该方法解决了单独采用轮询模式的时间不确定性和接收通道数据高帧频下丢帧的问题,也避免了单独采用中断模式而导致在接收通道数据高帧频下接收通道失效的问题。两种模式的有机结合使得DSP能快速处理接收通道的数据,即使在高帧频下也能做到串口接收通道不失效,接收数据无丢帧,极大提高了扩展串口的可靠性。
附图说明
为了更清楚地说明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所述的DSP读取扩展串口中接收通道数据的方法中DSP与扩展串口集成电路的连接关系示意图;
图2为本发明所述的DSP读取扩展串口中接收通道数据的方法中DSP初始化的流程图;
图3为本发明所述的DSP读取扩展串口中接收通道数据的方法中DSP对扩展串口集成电路初始化的流程图;
图4为本发明所述的DSP读取扩展串口中接收通道数据的方法中扩展串口集成电路的接收通道数据保存至专用数组的流程图;
图5中(a)、(b)、(c)和(d)分别为本发明所述的DSP读取扩展串口中接收通道数据的方法中扩展串口接收通道数据保存至专用数组的四种位置示意图。
具体实施方式
具体实施方式一、结合图1至图5说明本实施方式,DSP读取扩展串口中接收通道数据的方法,DSP与扩展串口专用集成电路的连接关系结合图1,DSP通过XINTF接口(外部接口)分别与每个扩展串口集成电路的数据总线、地址总线及读写信号线相连接,通过XINTF的多余的地址总线(如XA[7:5])经三八译码器来控制控制扩展串口集成电路的各通道的片选。各扩展串口集成电路的中断信号1~中断信号N,经过逻辑或元器件之后输出到DSP的外部中断管脚,且所有中断信号1~中断信号N分别输入到DSP的GPIO管脚。
具体方法以由以下步骤实现:
一、对DSP初始化,结合图2和图3,包括以下步骤:配置系统时钟,初始化所有GPIO,初始化相关外设,延迟一段时间后初始化扩展串口集成电路,配置外部中断,相关中断使能,全局中断使能;所述延迟一段时间大于等于扩展串口上电后至能进行寄存器读写的等待时间,否则会导致DSP对扩展串口初始化不完整,甚至扩展串口无法初始化。
所述初始化扩展串口集成电路的步骤为:配置数据位、停止位、奇偶校验位、配置波特率、使能接收FIFO、配置接收FIFO触发等级、使能相应串口中断输出以及接收FIFO中断使能。
二、本实施方中,扩展串口边沿触发中断服务程序(即中断模式)包括以下步骤:进入中断服务程序,扫描各扩展串口接收通道对应的触发中断管脚的电平状态,若该通道管脚电平状态与中断触发时的电平状态一致,则查询该通道接收FIFO中的数据个数,然后将FIFO中所有数据读取并保存至用于该通道的专用数组中。若该通道管脚电平状态与中断触发时的电平状态不一致,则对该通道无任何操作;
轮询程序包括以下步骤:在主循环程序中进入轮询程序,扫描各扩展串口接收通道对应的触发中断管脚的电平状态,若该通道管脚电平状态与中断触发时的电平状态一致,则查询该通道接收FIFO中的数据个数,然后将FIFO中所有数据读取并保存至用于该通道的专用数组中。若该通道管脚电平状态与中断触发时的电平状态不一致,则对该通道无任何操作;
三、各扩展串口接收通道读出的数据独立使用一个专用数组,且各通道轮询模式和中断模式下读取的数据都放在其专用数组内。该专用数组大小至少大于等于该扩展串口接收通道中FIFO大小,或至少大于等于该接收通道最长数据帧长度,二者中取最大者,建议取最大者的二倍到三倍。
结合图4和图5,设定专用数组中已存在数据起点为P,终点为Q,数据长度为M,即P+M=Q。专用数组起点为0,终点为F-1,长度为F,且存在如下关系0≤P≤Q≤F-1,如图5中(a)所示;
专用数组中已存在数据终点位置Q与该扩展串口接收通道FIFO中数据长度N之和为Q+N。若Q+N≤F-1,则保持专用数组中已存在数据的起点位置P值不变,将接收通道FIFO中的所有数据顺序保存至专用数组中已存在数据终点位置Q之后,并将专用数组中已存在数据终点位置更新为Q+N,存储后的数据在专用数组中的位置如图5中(b)所示;
若Q+N>F-1,则需要将专用数组中已存在数据整体往零点位置移动距离为Q+N-F+1,此时已存在数据的起点为P-Q-N+F-1,此时已存在数据的终点为F-1-N。若P-Q-N+F-1≥0,则将接收通道FIFO中的所有数据顺序保存至专用数组中已存在数据终点位置F-1-N之后,并将专用数组中已存在数据终点位置修改为F-1,起点值P-Q-N+F-1保持不变,存储后的数据在专用数组中的位置如图5中(c)所示;
若P-Q-N+F-1<0且F-1-N≥0,则将接收通道FIFO中的所有数据顺序保存至专用数组中已存在数据终点位置F-1-N之后,并将专用数组中已存在数据终点位置修改为F-1,起点值修改为0,存储后的数据在专用数组中的位置如图5中(d)所示;
若P-Q-N+F-1<0且F-1-N<0,则说明专用数组的长度F小于扩展串口接收通道FIFO中数据长度N,这种情况是与前面所述的专用数组长度相悖,不存在此种情况,直接退出本段程序;其中P′和Q′为扩展串口接收通道数据存储在专用数组后已存在数据的起点位置和终点位置。

Claims (5)

1.DSP读取扩展串口中接收通道数据的方法,其特征是;该方法由以下步骤实现:
步骤一、对DSP以及扩展串口集成电路进行初始化;
步骤二、初始化后的DSP同时开启中断模式和轮询模式,如果中断条件满足,则进入中断服务程序,如果轮询条件满足,则进入轮询处理程序;
所述进入中断模式或轮询模式中的程序执行方式相同,具体为:
扫描各扩展串口接收通道对应的触发中断管脚的电平状态,若该通道管脚电平状态与中断触发时的电平状态一致,则查询该通道接收FIFO中的数据个数,然后将FIFO中所有数据读取并保存至用于该通道的专用数组中;若该通道管脚电平状态与中断触发时的电平状态不一致,则对该通道无任何操作;
步骤三、将步骤二中读取各扩展串口接收通道的数据保存在专用数组中,具体为:
设定专用数组中已存在数据起点为P,终点为Q,数据长度为M,即P+M=Q;专用数组起点为0,终点为F-1,长度为F,且存在如下关系0≤P≤Q≤F-1;专用数组中已存在数据终点位置Q与该扩展串口接收通道FIFO中数据长度N之和为Q+N;
若Q+N≤F-1,则保持专用数组中已存在数据的起点位置P值不变,将接收通道FIFO中的所有数据顺序保存至专用数组中已存在数据终点位置Q之后,并将专用数组中已存在数据终点位置更新为Q+N;
若Q+N>F-1,则将专用数组中已存在数据整体往零点位置移动距离为Q+N-F+1,此时已存在数据的起点为P-Q-N+F-1,已存在数据的终点为F-1-N;
若P-Q-N+F-1≥0,则将接收通道FIFO中的所有数据顺序保存至专用数组中已存在数据终点位置F-1-N之后,并将专用数组中已存在数据终点位置修改为F-1,起点值P-Q-N+F-1保持不变;
若P-Q-N+F-1<0且F-1-N≥0,则将接收通道FIFO中的所有数据顺序保存至专用数组中已存在数据终点位置F-1-N之后,并将专用数组中已存在数据终点位置修改为F-1,起点值修改为0;
若P-Q-N+F-1<0且F-1-N<0,则专用数组的长度F小于扩展串口接收通道FIFO中数据长度N,则程序结束。
2.根据权利要求1所述的DSP读取扩展串口中接收通道数据的方法,其特征在于,包括多个扩展串口集成电路,DSP与每个扩展串口集成电路的连接方式相同,具体为:所述DSP通过XINTF接口中的数据总线、一部分地址总线和读写信号线分别与扩展串口集成电路的数据总线、地址总线以及读写信号线连接,XINTF接口中的另一部分地址总线经过三八译码器后与扩展串口集成电路的片选信号线连接;每个扩展串口集成电路的中断信号分别与DSP的GPIO接口中的信号线相连接,同时所述所有中断信号经过逻辑或元器件后与DSP的外部中断管脚连接。
3.根据权利要求1所述的DSP读取扩展串口中接收通道数据的方法,其特征在于,DSP对扩展串口集成电路初始化之前设定延迟时间,所述延迟时间大于等于扩展串口集成电路上电后至能进行寄存器读写的等待时间。
4.根据权利要求1所述的DSP读取扩展串口中接收通道数据的方法,其特征在于,DSP对扩展串口集成电路初始化包括配置数据位、停止位、奇偶校验位、配置波特率、使能接收FIFO、配置接收FIFO触发等级、使能相应串口中断输出以及接收FIFO中断使能。
5.根据权利要求1所述的DSP读取扩展串口中接收通道数据的方法,其特征在于,步骤三中,专用数组的大小大于等于该扩展串口接收通道中FIFO的大小,或大于等于该接收通道最长数据帧长度,两者中取最大者。
CN201710356711.6A 2017-05-19 2017-05-19 Dsp读取扩展串口中接收通道数据的方法 Expired - Fee Related CN107291647B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710356711.6A CN107291647B (zh) 2017-05-19 2017-05-19 Dsp读取扩展串口中接收通道数据的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710356711.6A CN107291647B (zh) 2017-05-19 2017-05-19 Dsp读取扩展串口中接收通道数据的方法

Publications (2)

Publication Number Publication Date
CN107291647A true CN107291647A (zh) 2017-10-24
CN107291647B CN107291647B (zh) 2020-08-14

Family

ID=60094420

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710356711.6A Expired - Fee Related CN107291647B (zh) 2017-05-19 2017-05-19 Dsp读取扩展串口中接收通道数据的方法

Country Status (1)

Country Link
CN (1) CN107291647B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108885714A (zh) * 2017-11-30 2018-11-23 深圳市大疆创新科技有限公司 计算单元、计算系统以及计算单元的控制方法
CN110908861A (zh) * 2019-10-30 2020-03-24 航宇救生装备有限公司 一种基于dsp的外部多信号源监控处理方法
CN112988650A (zh) * 2021-05-12 2021-06-18 网络通信与安全紫金山实验室 通信方法、装置、系统及存储介质
CN113127401A (zh) * 2021-03-10 2021-07-16 歌尔科技有限公司 一种耳机盒与耳机的通信方法和系统
CN114168500A (zh) * 2021-12-01 2022-03-11 武汉港迪技术股份有限公司 一种无系统的单片机多接口扩展方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060212679A1 (en) * 2000-06-19 2006-09-21 Alfano Donald E Field programmable mixed-signal integrated circuit
CN102760111A (zh) * 2012-06-27 2012-10-31 浙江大学 一种基于fpga的扩展多串口装置及其数据收发方法
CN104156333A (zh) * 2014-08-12 2014-11-19 成都联星微电子有限公司 一种基于fpga的uart多接口扩展系统和方法
CN104460464A (zh) * 2014-12-16 2015-03-25 北京航空航天大学 一种基于dsp和cpld开发的imu数据采集电路及采集方法
CN104866452A (zh) * 2015-05-19 2015-08-26 哈尔滨工业大学(鞍山)工业技术研究院 基于fpga和tl16c554a的多串口扩展方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060212679A1 (en) * 2000-06-19 2006-09-21 Alfano Donald E Field programmable mixed-signal integrated circuit
CN102760111A (zh) * 2012-06-27 2012-10-31 浙江大学 一种基于fpga的扩展多串口装置及其数据收发方法
CN104156333A (zh) * 2014-08-12 2014-11-19 成都联星微电子有限公司 一种基于fpga的uart多接口扩展系统和方法
CN104460464A (zh) * 2014-12-16 2015-03-25 北京航空航天大学 一种基于dsp和cpld开发的imu数据采集电路及采集方法
CN104866452A (zh) * 2015-05-19 2015-08-26 哈尔滨工业大学(鞍山)工业技术研究院 基于fpga和tl16c554a的多串口扩展方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108885714A (zh) * 2017-11-30 2018-11-23 深圳市大疆创新科技有限公司 计算单元、计算系统以及计算单元的控制方法
CN110908861A (zh) * 2019-10-30 2020-03-24 航宇救生装备有限公司 一种基于dsp的外部多信号源监控处理方法
CN113127401A (zh) * 2021-03-10 2021-07-16 歌尔科技有限公司 一种耳机盒与耳机的通信方法和系统
CN113127401B (zh) * 2021-03-10 2023-03-28 歌尔科技有限公司 一种耳机盒与耳机的通信方法和系统
CN112988650A (zh) * 2021-05-12 2021-06-18 网络通信与安全紫金山实验室 通信方法、装置、系统及存储介质
CN112988650B (zh) * 2021-05-12 2021-08-03 网络通信与安全紫金山实验室 通信方法、装置、系统及存储介质
CN114168500A (zh) * 2021-12-01 2022-03-11 武汉港迪技术股份有限公司 一种无系统的单片机多接口扩展方法

Also Published As

Publication number Publication date
CN107291647B (zh) 2020-08-14

Similar Documents

Publication Publication Date Title
CN107291647A (zh) Dsp读取扩展串口中接收通道数据的方法
CN114443529B (zh) 内存直接访问架构、系统、方法、电子设备和介质
US7363396B2 (en) Supercharge message exchanger
TWI731200B (zh) 使用i2c匯流排與主機連接的從機及其通信方法
CN101420328B (zh) 远程升级现场可编程门阵列的系统、接口卡及方法
US7010638B2 (en) High speed bridge controller adaptable to non-standard device configuration
JP2757055B2 (ja) ディジタル・コンピュータのデータ転送方法
US20100122003A1 (en) Ring-based high speed bus interface
CN103605625B (zh) 基于AXI总线的Nor Flash芯片的控制方法
JP2022507935A (ja) 代替プロトコルの選択
US9910814B2 (en) Method, apparatus and system for single-ended communication of transaction layer packets
CN110100238A (zh) 用于传送数据的方法和镜像串行接口(msi)
US6766406B1 (en) Field programmable universal serial bus application specific integrated circuit and method of operation thereof
CN101232522B (zh) 一种网卡驱动方法
US20060248391A1 (en) State machine-based command line debugger
CN111858459B (zh) 处理器及计算机
TWI727581B (zh) 資料傳輸系統
CN118467434A (zh) 服务系统、输入输出机箱、设备机箱以及机箱识别方法
US20070131767A1 (en) System and method for media card communication
US7373541B1 (en) Alignment signal control apparatus and method for operating the same
WO2018006777A1 (zh) 一种通讯连接装置及方法、通讯单板
CN100353296C (zh) 控制外围设备输出数据到总线的方法及计算机系统
CN111124960A (zh) 一种基于高速pci-e接口硬盘连接机构
CN100430912C (zh) 一种智能卡驱动方法
TW202117549A (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200814