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
serial port
receiving channel
extended serial
dsp
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读取扩展串口中接收通道数据的方法
KR101725536B1 (ko) Pcie 프로토콜 스택을 이용하는 저전력 phy의 동작을 위한 디바이스, 방법 및 시스템
US7757020B2 (en) Point-to-point link negotiation method and apparatus
US7712659B2 (en) Card recognition system for recognizing standard card and non-standard card
US10282341B2 (en) Method, apparatus and system for configuring a protocol stack of an integrated circuit chip
CN110008151B (zh) 电子设备、数据传输装置和数据传输方法
KR101679333B1 (ko) 트랜잭션 계층 패킷의 싱글 엔드형 통신을 위한 방법, 장치 및 시스템
US8840031B2 (en) Smart card and a method for operating a smart card
EP3001323A1 (en) Serial peripheral interface
CN106250340A (zh) 一种硬件控制电路及其控制方法
CN102073611B (zh) 一种i2c总线控制系统及方法
CN103823785B (zh) 一种基于dsp和cpld开发的多路arinc429数据收发电路结构
CN109766308A (zh) 一种基于localbus总线的多路onewire通信系统
KR20070086197A (ko) 멀티미디어 카드 인터페이스 방법, 컴퓨터 프로그램 생성물및 장치
CN111948971A (zh) 一种智能卡管理装置及其数据转接方法
CN104571942A (zh) 数据存储系统和非信号分析方法
US7610415B2 (en) System and method for processing data streams
CN105573947B (zh) 一种基于apb总线的sd/mmc卡控制方法
CN100349153C (zh) 一种实现输出控制的方法及由主板控制接口卡的装置
CN1950810B (zh) 用于主机子卡接口的后向兼容并行ddr总线
JPS6184764A (ja) 半導体集積回路装置
CN102646202A (zh) 一种模拟spi方式的双sd卡功能
WO2012009996A1 (zh) 一种存储器装置及智能手机系统
CN108509365B (zh) 一种dbi的数据传输方法及系统
CN103679257A (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

Granted publication date: 20200814

CF01 Termination of patent right due to non-payment of annual fee