CN106649184B - 适用于星载电子设备的异步通信串口指令快速应答方法 - Google Patents

适用于星载电子设备的异步通信串口指令快速应答方法 Download PDF

Info

Publication number
CN106649184B
CN106649184B CN201611064906.5A CN201611064906A CN106649184B CN 106649184 B CN106649184 B CN 106649184B CN 201611064906 A CN201611064906 A CN 201611064906A CN 106649184 B CN106649184 B CN 106649184B
Authority
CN
China
Prior art keywords
fpga
serial ports
mcu
fifo
query instruction
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.)
Active
Application number
CN201611064906.5A
Other languages
English (en)
Other versions
CN106649184A (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.)
Aerospace Long March Launch Vehicle Technology Co Ltd
Beijing Institute of Telemetry Technology
Original Assignee
Aerospace Long March Launch Vehicle Technology Co Ltd
Beijing Institute of Telemetry Technology
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 Aerospace Long March Launch Vehicle Technology Co Ltd, Beijing Institute of Telemetry Technology filed Critical Aerospace Long March Launch Vehicle Technology Co Ltd
Priority to CN201611064906.5A priority Critical patent/CN106649184B/zh
Publication of CN106649184A publication Critical patent/CN106649184A/zh
Application granted granted Critical
Publication of CN106649184B publication Critical patent/CN106649184B/zh
Active 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/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
    • G06F13/4286Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

适用于星载电子设备的异步通信串口指令快速应答方法,设置MCU两个外部中断源,外部中断0为FPGA串口物理层数据接收中断,外部中断1为FPGA产生的500us定时中断。FPGA内部实现一定深度的数据发送FIFO,串口物理层解析出主机查询指令后设置指令标志,MCU在500us定时中断服务函数中查询此标志,标志有效则向FIFO连续写入待发送数据,写满为止。MCU全部数据发送完后,清除FPGA中的指令标志,本次响应结束。本发明解决了一主多从串口通信系统中从机因工作时钟较低无法满足主机提出的快速响应要求的问题。通过FPGA配合识别指令,MCU定时填充数据至发送FIFO的方法,弥补了MCU工作时钟低的不足,响应速度快,可以满足主机的等待时间要求。

Description

适用于星载电子设备的异步通信串口指令快速应答方法
技术领域
本发明涉及一种适用于星载电子设备的异步通信串口指令快速应答方法,特别是一种适用于以较低速工作时钟运行的星载电子设备的异步通信串口指令快速应答方法,属星载数字电子技术领域。
背景技术
星载综合电子系统多设备间常采用一主多从关系通信串口进行信息交互,主机管理的从机设备数量较多时,主机按顺序向某一从机发出数据采集命令后,要求从机在收到命令后一定时间(例如3ms)内开始返回数据,若超过此时间主机未收到数据则不再等待接收该从机数据,切换至下一从机。某些从机使用的微处理器工作时钟降额后频率较低,无法满足快速响应时间要求,导致主机不能正常接收数据。
发明内容
本发明解决的技术问题:克服现有技术的不足,提供了一种适用于星载电子设备的异步通信串口指令快速应答方法,解决了一主多从串口通信系统中从机因工作时钟较低无法满足主机提出的快速响应要求的问题。
本发明的技术解决方案:
适用于星载电子设备的异步通信串口指令快速应答方法,该应答方法基于MCU和FPGA组成的电路系统实现,且MCU和FPGA组成的电路系统在低工作时钟下运行;系统上电后MCU和FPGA同时运行,FPGA用于接收并解析其他星载电子设备通过异步通信串口发送过来的状态查询指令帧,并设置flag标志的值,MCU查询所述flag标志,并将MCU和FPGA组成的电路系统的状态数据发送到FPGA,FPGA再将该状态数据通过所述异步通信串口发送到所述其他星载电子设备,实现指令快速应答。
所述低工作时钟是指运行时钟低于10MHz。
所述的MCU的工作步骤如下:
(1)设置MCU两个外部中断源,第一外部中断源为FPGA串口物理层数据接收中断,第二外部中断源为FPGA产生的500us定时中断;
(2)FPGA产生500us定时中断后,进入中断服务程序ISR;
(3)在中断服务程序ISR中查询状态查询指令标志flag,若所述状态查询指令标志flag无效则退出中断服务程序ISR并返回执行步骤(2),若有效则执行步骤(4);
(4)将所述MCU和FPGA组成的电路系统的状态数据发送到FPGA的FIFO中,判断需上报的所述MCU和FPGA组成的电路系统的状态数据是否已发送完毕,若发送完毕则清除FPGA中的flag标志,退出中断服务程序ISR并返回执行步骤(2),若未发送完毕则执行步骤(5);
所述清除FPGA中的flag标志是指将flag标志值置为0;
(5)根据FIFO满标志判断FPGA的FIFO是否已满,若FIFO满标志的值为1,则退出中断服务程序ISR并返回执行步骤(2),若FIFO满标志的值为0,则向FIFO写入一字节状态数据后执行步骤(4)。
当状态查询指令标志flag为1时,状态查询指令标志flag有效,则FPGA收到并解析出其他星载电子设备通过异步通信串口发送过来的状态查询指令帧;
当状态查询指令标志flag为0时,状态查询指令标志flag无效,则FPGA未收到其他星载电子设备通过异步通信串口发送过来的状态查询指令帧。
所述的FPGA接收并解析其他星载电子设备通过异步通信串口发送过来的状态查询指令帧,设置flag标志的值,具体为:
(1)FPGA根据异步通信串口交互的双方约定的物理层协议,接收对方星载电子设备通过异步通信串口发送过来的数据;
(2)解析所述数据,如果解析到状态查询指令帧,则将状态查询指令标志flag设置为有效,即设置为1;如果未解析到状态查询指令帧,则保持状态查询指令标志flag的值不变;
该状态查询指令标志flag的初始状态为无效,即flag的值为0。
所述FPGA再将该状态数据通过所述异步通信串口发送到所述其他星载电子设备,具体为:
(1)在FPGA内部开辟预设深度的FIFO;
(2)接收MCU写入的状态数据并存入FIFO,并更新FIFO满标志的值提供给MCU,如果FIFO已满,则FIFO满标志的值为1,如果FIFO未满,则FIFO满标志的值为0;
(3)FPGA根据异步通信串口交互的双方约定的物理层协议,将FIFO中存储的状态数据按字节依次发送给对方星载电子设备,直至FIFO为空,并实时更新FIFO满标志的值提供给MCU。
FIFO的深度小于全部状态数据的长度。
本发明与现有技术相比的优点在于:
(1)电子系统多设备间采用一主多从关系通信串口进行信息交互时,通常主机以轮询方式向从机发送“状态查询指令”,从机收到后向主机回复“状态数据”。当主机管理的从机设备数量较多时,其对每一台从机的响应时间有一定要求,该时间内如未收到响应,则切换至下一从机,而不会继续等待。星载电子设备受到工作条件、器件等级,可靠性要求的限制,一般使用的处理器运行速度较低,如高等级单片机80C32最高运行时钟仅30MHz,程序代码执行的速度有可能无法满足主机提出的快速响应要求,导致主机放弃从机数据。
(2)本发明提出的一种适用于星载电子设备的异步通信串口指令快速应答方法,通过FPGA配合识别指令,MCU定时填充数据至发送FIFO的方法,弥补了MCU工作时钟低的不足,响应速度快,可以满足主机的等待时间要求。
附图说明
图1为本发明的工作原理示意图;
图2为本发明的MCU及FPGA协同工作流程。
具体实施方式
本发明使用FPGA识别指令快速响应、MCU定时填充数据发送FIFO的方法,以满足主机的等待时间要求。其原理如图1所示。
硬件电路主要由MCU+FPGA组成,且二者协同工作,MCU型号为ATMEL公司的SC80C32E,时钟频率降额使用22.1184MHz,FPGA型号为ACTEL公司的A3P250。设置MCU两个外部中断源,外部中断0为FPGA串口物理层数据接收中断,外部中断1为FPGA产生的500us定时中断。FPGA内部实现一定深度的数据发送FIFO,串口物理层解析出主机查询指令后设置指令标志,MCU在500us定时中断服务函数中查询此标志,标志有效则向FIFO连续写入待发送数据,写满为止。
按波特率115200bps、每字节11位计算,串口物理层发送一个字节耗时95us,500us内只能发送5个字节,故FIFO深度不小于6即可实现数据连续发送。MCU全部数据发送完后,清除FPGA中的指令标志,本次响应结束。
本发明提出的一种适用于星载电子设备的异步通信串口指令快速应答方法,其工作流程如图2所示。
该应答方法基于MCU和FPGA组成的电路系统实现,且MCU和FPGA组成的电路系统在低工作时钟下运行;系统上电后MCU和FPGA同时运行,FPGA用于接收并解析其他星载电子设备通过异步通信串口发送过来的状态查询指令帧,并设置flag标志的值,MCU查询所述flag标志,并将MCU和FPGA组成的电路系统的状态数据发送到FPGA,FPGA再将该状态数据通过所述异步通信串口发送到所述其他星载电子设备,实现指令快速应答。
本发明所适应的情况为低工作时钟,一般是指运行时钟低于10MHz。
MCU的工作步骤如下:
(1)设置MCU两个外部中断源,第一外部中断源为FPGA串口物理层数据接收中断,第二外部中断源为FPGA产生的500us定时中断;
(2)FPGA产生500us定时中断后,进入中断服务程序ISR;
(3)在中断服务程序ISR中查询状态查询指令标志flag,若所述状态查询指令标志flag无效则退出中断服务程序ISR并返回执行步骤(2),若有效则执行步骤(4);
当状态查询指令标志flag为1时,状态查询指令标志flag有效,则FPGA收到并解析出其他星载电子设备通过异步通信串口发送过来的状态查询指令帧;
当状态查询指令标志flag为0时,状态查询指令标志flag无效,则FPGA未收到其他星载电子设备通过异步通信串口发送过来的状态查询指令帧。
(4)将所述MCU和FPGA组成的电路系统的状态数据发送到FPGA的FIFO中,判断需上报的所述MCU和FPGA组成的电路系统的状态数据是否已发送完毕,若发送完毕则清除FPGA中的flag标志,退出中断服务程序ISR并返回执行步骤(2),若未发送完毕则执行步骤(5);
所述清除FPGA中的flag标志是指将flag标志值置为0;
(5)根据FIFO满标志判断FPGA的FIFO是否已满,若FIFO满标志的值为1,则退出中断服务程序ISR并返回执行步骤(2),若FIFO满标志的值为0,则向FIFO写入一字节状态数据后执行步骤(4)。
FPGA接收并解析其他星载电子设备通过异步通信串口发送过来的状态查询指令帧,设置flag标志的值,具体为:
(1a)FPGA根据异步通信串口交互的双方约定的物理层协议,接收对方星载电子设备通过异步通信串口发送过来的数据;
(1b)解析所述数据,如果解析到状态查询指令帧,则将状态查询指令标志flag设置为有效,即设置为1;如果未解析到状态查询指令帧,则保持状态查询指令标志flag的值不变;
该状态查询指令标志flag的初始状态为无效,即flag的值为0。
FPGA再将该状态数据通过所述异步通信串口发送到所述其他星载电子设备,具体为:
(aa)在FPGA内部开辟预设深度的FIFO;
(bb)接收MCU写入的状态数据并存入FIFO,并更新FIFO满标志的值提供给MCU,如果FIFO已满,则FIFO满标志的值为1,如果FIFO未满,则FIFO满标志的值为0;
(cc)FPGA根据异步通信串口交互的双方约定的物理层协议,将FIFO中存储的状态数据按字节依次发送给对方星载电子设备,直至FIFO为空,并实时更新FIFO满标志的值提供给MCU。
本发明中,FIFO的深度远小于全部状态数据的长度。通常,受制于FPGA实际资源使用情况,FIFO的深度不能达到全部状态数据的长度,但同时为了实现数据的连续发送,可根据串口物理层协议及MCU的定时写入周期,计算FIFO需开辟的深度。按波特率115200bps、每字节11位计算,串口物理层发送一个字节耗时95us,MCU每个定时写入周期500us内FIFO只能发送5个字节,故FIFO深度不小于6即可实现数据连续发送。
本发明提出的适用于星载电子设备的异步通信串口指令快速应答方法,解决了一主多从串口通信系统中从机因工作时钟较低无法满足主机提出的快速响应要求的问题。通过FPGA配合识别指令,MCU定时填充数据至发送FIFO的方法,弥补了MCU工作时钟低的不足,响应速度快,可以满足主机的等待时间要求。
实施例:
按照本发明描述技术方案(硬件组成和软件应答方法)设计的实际系统中,从机回复主机的状态数据长度107字节,FIFO深度为6,MCU定时写入周期500us。使用示波器测试,从机响应时间最慢不大于1ms,完全满足主机3ms等待时间的使用要求。这里响应时间指主机发出的“状态查询指令”数据串末位到从机回复的“状态数据”数据串首位之间的时间间隔。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。

Claims (6)

1.适用于星载电子设备的异步通信串口指令快速应答方法,其特征在于:该应答方法基于MCU和FPGA组成的电路系统实现,且MCU和FPGA组成的电路系统在低工作时钟下运行;系统上电后MCU和FPGA同时运行,FPGA用于接收并解析其他星载电子设备通过异步通信串口发送过来的状态查询指令帧,并设置状态查询指令flag标志的值,MCU查询所述状态查询指令flag标志,并将MCU和FPGA组成的电路系统的状态数据发送到FPGA,FPGA再将该状态数据通过所述异步通信串口发送到所述其他星载电子设备,实现指令快速应答;
所述的MCU的工作步骤如下:
(1)设置MCU两个外部中断源,第一外部中断源为FPGA串口物理层数据接收中断,第二外部中断源为FPGA产生的500us定时中断;
(2)FPGA产生500us定时中断后,进入中断服务程序ISR;
(3)在中断服务程序ISR中查询状态查询指令flag标志,若所述状态查询指令flag标志无效则退出中断服务程序ISR并返回执行步骤(2),若有效则执行步骤(4);
(4)将所述MCU和FPGA组成的电路系统的状态数据发送到FPGA的FIFO中,判断需上报的所述MCU和FPGA组成的电路系统的状态数据是否已发送完毕,若发送完毕则清除FPGA中的状态查询指令flag标志,退出中断服务程序ISR并返回执行步骤(2),若未发送完毕则执行步骤(5);
所述清除FPGA中的状态查询指令flag标志是指将状态查询指令flag标志值置为0;
(5)根据FIFO满标志判断FPGA的FIFO是否已满,若FIFO满标志的值为1,则退出中断服务程序ISR并返回执行步骤(2),若FIFO满标志的值为0,则向FIFO写入一字节状态数据后执行步骤(4)。
2.根据权利要求1所述的适用于星载电子设备的异步通信串口指令快速应答方法,其特征在于:所述低工作时钟是指运行时钟低于10MHz。
3.根据权利要求1所述的适用于星载电子设备的异步通信串口指令快速应答方法,其特征在于:
当状态查询指令flag标志为1时,状态查询指令flag标志有效,则FPGA收到并解析出其他星载电子设备通过异步通信串口发送过来的状态查询指令帧;
当状态查询指令flag标志为0时,状态查询指令flag标志无效,则FPGA未收到其他星载电子设备通过异步通信串口发送过来的状态查询指令帧。
4.根据权利要求1或2所述的适用于星载电子设备的异步通信串口指令快速应答方法,其特征在于:所述的FPGA接收并解析其他星载电子设备通过异步通信串口发送过来的状态查询指令帧,设置状态查询指令flag标志的值,具体为:
(1)FPGA根据异步通信串口交互的双方约定的物理层协议,接收对方星载电子设备通过异步通信串口发送过来的数据;
(2)解析所述数据,如果解析到状态查询指令帧,则将状态查询指令flag标志设置为有效,即设置为1;如果未解析到状态查询指令帧,则保持状态查询指令flag标志的值不变;
该状态查询指令flag标志的初始状态为无效,即状态查询指令flag标志的值为0。
5.根据权利要求1或2所述的适用于星载电子设备的异步通信串口指令快速应答方法,其特征在于:所述FPGA再将该状态数据通过所述异步通信串口发送到所述其他星载电子设备,具体为:
(1)在FPGA内部开辟预设深度的FIFO;
(2)接收MCU写入的状态数据并存入FIFO,并更新FIFO满标志的值提供给MCU,如果FIFO已满,则FIFO满标志的值为1,如果FIFO未满,则FIFO满标志的值为0;
(3)FPGA根据异步通信串口交互的双方约定的物理层协议,将FIFO中存储的状态数据按字节依次发送给对方星载电子设备,直至FIFO为空,并实时更新FIFO满标志的值提供给MCU。
6.根据权利要求1或2所述的适用于星载电子设备的异步通信串口指令快速应答方法,其特征在于:FIFO的深度小于全部状态数据的长度。
CN201611064906.5A 2016-11-28 2016-11-28 适用于星载电子设备的异步通信串口指令快速应答方法 Active CN106649184B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611064906.5A CN106649184B (zh) 2016-11-28 2016-11-28 适用于星载电子设备的异步通信串口指令快速应答方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611064906.5A CN106649184B (zh) 2016-11-28 2016-11-28 适用于星载电子设备的异步通信串口指令快速应答方法

Publications (2)

Publication Number Publication Date
CN106649184A CN106649184A (zh) 2017-05-10
CN106649184B true CN106649184B (zh) 2019-06-18

Family

ID=58811738

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611064906.5A Active CN106649184B (zh) 2016-11-28 2016-11-28 适用于星载电子设备的异步通信串口指令快速应答方法

Country Status (1)

Country Link
CN (1) CN106649184B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108197042B (zh) * 2017-12-20 2020-05-12 北京控制工程研究所 一种基于fpga的通用异步串口及其应答方法
CN112364397B (zh) * 2020-11-27 2023-01-13 天津七所精密机电技术有限公司 一种基于fpga的异步串口安全通信系统及方法
CN113094305B (zh) * 2021-04-02 2024-03-26 北京黑蚁兄弟科技有限公司 一种异步通信处理方法、装置和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1405994A (zh) * 2002-11-08 2003-03-26 清华大学 Tp-s卫星信道专用传输协议及传输方法
CN101354829A (zh) * 2008-09-12 2009-01-28 航天东方红卫星有限公司 一种卫星遥测数据传输方法
CN101866308A (zh) * 2009-08-06 2010-10-20 浙江大学 基于fpga扩展的皮卫星星务管理系统
CN102081585A (zh) * 2010-12-30 2011-06-01 哈尔滨工业大学 试验卫星用rs485双总线通信方法
CN102664779A (zh) * 2012-03-31 2012-09-12 航天东方红卫星有限公司 一种can总线数据传送方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009518B2 (en) * 2010-07-29 2015-04-14 Cisco Technology, Inc. Method and apparatus for conveying and reproducing multiple independent timebases using a shared reference clock, clock snapshots and a packet network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1405994A (zh) * 2002-11-08 2003-03-26 清华大学 Tp-s卫星信道专用传输协议及传输方法
CN101354829A (zh) * 2008-09-12 2009-01-28 航天东方红卫星有限公司 一种卫星遥测数据传输方法
CN101866308A (zh) * 2009-08-06 2010-10-20 浙江大学 基于fpga扩展的皮卫星星务管理系统
CN102081585A (zh) * 2010-12-30 2011-06-01 哈尔滨工业大学 试验卫星用rs485双总线通信方法
CN102664779A (zh) * 2012-03-31 2012-09-12 航天东方红卫星有限公司 一种can总线数据传送方法

Also Published As

Publication number Publication date
CN106649184A (zh) 2017-05-10

Similar Documents

Publication Publication Date Title
US11176068B2 (en) Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link
CN102819512B (zh) 一种基于spi的全双工通信装置及其方法
CN106649184B (zh) 适用于星载电子设备的异步通信串口指令快速应答方法
CN202870808U (zh) 一种spi串口模块的fpga实现装置
CN108132897B (zh) 一种基于zynq平台软核的srio控制器
US20140269754A1 (en) Computer system and method for communicating data between computers
CN107741915B (zh) 一种基于sdio接口的fpga板级通信装置及通信方法
CN103095703B (zh) 一种实现网络与串口数据交互的方法、设备及系统
CN103092175B (zh) I2c主设备与从设备之间串行时钟线scl控制的方法及装置
CN104714918B (zh) 主机环境下高速fc总线数据接收及缓冲方法
CN103617138A (zh) 多主机仲裁方法及多主机通信系统
CN101626334A (zh) 通讯总线控制方法和装置
CN102811152B (zh) 一种多主总线网络通讯实时交易数据交换实现方法
CN104156333A (zh) 一种基于fpga的uart多接口扩展系统和方法
CN102263698A (zh) 虚拟通道的建立方法、数据传输的方法及线卡
CN110188059A (zh) 数据有效位统一配置的流控式fifo缓存结构及方法
CN105993148B (zh) 网络接口
CN105281433A (zh) 一种配电终端通信系统
CN103164314B (zh) 基于异步物理层接口的PCIe接口芯片硬件验证方法
CN204256732U (zh) 基于PCI-Express接口的高速数据传输装置
CN105512005B (zh) 控制/远程节点与总线监控节点同步工作的电路及方法
CN109547157B (zh) 一种支持时间触发以太网的万兆网络控制器及控制方法
CN103107862B (zh) 逻辑器件及其mdio数据发送方法
CN103593316B (zh) 一种减少mcu中断占用i2c总线时间的方法
CN106302460A (zh) 过程层点对点sv发送方法和系统

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