DSP read the serial data in the receiving channel expansion method, relates to an embedded computer field, solve the existing DSP and extended serial chip data exchange, there is only the polling mode or edge triggered interrupt mode, resulting in high frame rate data of the receiving channel is easily lost and unable to read frames in the receiving channel of data caused by the problem of data channel failure, the method adopts interrupt mode and polling mode combination, the corresponding extended serial receive channel FIFO data, in a specific manner and stored in a dedicated array. This method solved separately using polling mode time uncertainty and receiving channel data under high frame rate drop frame problem, but also avoid the interrupt mode alone may lead to the failure of receiving channel in the receiving channel data under high frame rate problems. The combination of the two modes makes the DSP fast processing the data of the receiving channel and greatly improves the reliability of the extended serial port.
【技术实现步骤摘要】
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中的所有数据顺序保存至专用数组中已存在数 ...
【技术特征摘要】
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<...
【专利技术属性】
技术研发人员:章家保,徐伟,张贵祥,朴永杰,冯汝鹏,王绍举,
申请(专利权)人:中国科学院长春光学精密机械与物理研究所,
类型:发明
国别省市:吉林,22
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。