CN113590530B - 基于单片机实现1553b总线通信的方法及*** - Google Patents

基于单片机实现1553b总线通信的方法及*** Download PDF

Info

Publication number
CN113590530B
CN113590530B CN202110865399.XA CN202110865399A CN113590530B CN 113590530 B CN113590530 B CN 113590530B CN 202110865399 A CN202110865399 A CN 202110865399A CN 113590530 B CN113590530 B CN 113590530B
Authority
CN
China
Prior art keywords
module
instruction
reading
data
byte
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
CN202110865399.XA
Other languages
English (en)
Other versions
CN113590530A (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.)
Shanghai Institute of Space Propulsion
Original Assignee
Shanghai Institute of Space Propulsion
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 Shanghai Institute of Space Propulsion filed Critical Shanghai Institute of Space Propulsion
Priority to CN202110865399.XA priority Critical patent/CN113590530B/zh
Publication of CN113590530A publication Critical patent/CN113590530A/zh
Application granted granted Critical
Publication of CN113590530B publication Critical patent/CN113590530B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • 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/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Microcomputers (AREA)
  • Communication Control (AREA)

Abstract

本发明提供了一种基于单片机实现1553B总线通信的方法及***,包括单片机对1553B芯片读操作方法,包括先读高8位,设置MSB_LSBn=‘1’,进行“哑读”操作,数据丢弃;等待一段时间;设置MSB_LSBn=‘0’,读低地址,存入共用体RTdata的高字节RTdata.bytedata[1];设置MSB_LSBn=‘1’,读高地址,存入共用体的低字节RTdata.bytedata[0];函数返回值是共用体的字RTdata.worddata。本发明克服单片机8位数据接口,与1553B 16位数据总线接口的矛盾,提高数据处理效率,并具有一定的灵活性。

Description

基于单片机实现1553B总线通信的方法及***
技术领域
本发明涉及单片机与***芯片的通信的技术领域,具体地,涉及基于单片机实现1553B总线通信的方法及***,尤其涉及一种基于单片机实现1553B总线通信的方法。
背景技术
1553B总线是美国空军电子子***联网的标准总线,该总线具有极高的可靠性,在航空航天等军事领域具有广泛的应用。1553B总线的消息是由多个16位的字组成,速度快,效率高。但目前很多航天产品用单片机来作为总控CPU,只有8位数据总线,在单片机内部一般按字节处理,因为单片机对数据位的处理不灵活,这些接收的数据不会再转化成16位,这势必造成了数据处理上的局限。对于收到的指令,一般是利用终端结合last command寄存器,这样的处理方式,如果在有中断嵌套并且1553B接口芯片的优先级不高的时候,有可能会有丢失指令的风险。
在公告号为CN102447600B的专利文献中公开了一种本发明异步通信方式,具体地说,涉及一种无时钟同步信号单片机实现HOMEBUS总线通信的方法,提供了一种用不具有同步时钟输出异步通信的单片机,在异步通信时用单片机内部PWM信号模拟出同步时钟信号,实现HomeBus总线通信,从而可以随意的选择单片机实现HomeBus通信,而不必局限于H8系列和富士通系列单片机的无时钟同步信号单片机实现HOMEBUS总线通信的方法,单片机设置为具有PWM输出功能的单片机,单片机的RXD、TXD、PWM端口分别和HOMEBUS的RXD、TXD、SCK端口连接。
针对上述中的相关技术,发明人认为存在数据处理效率低且灵活性低的问题,因此,需要提出一种技术方案以改善上述技术问题。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于单片机实现1553B总线通信的方法及***。
根据本发明提供的一种基于单片机实现1553B总线通信的方法,包括单片机对1553B芯片读操作方法,所述单片机对1553B芯片读操作方法包括如下步骤:
步骤S1:先读高8位,设置MSB_LSBn=‘1’,进行“哑读”操作,数据丢弃;
步骤S2:等待一段时间;
步骤S3:设置MSB_LSBn=‘0’,读低地址,存入共用体RTdata的高字节RTdata.bytedata[1];
步骤S4:设置MSB_LSBn=‘1’,读高地址,存入共用体的低字节RTdata.bytedata[0];
步骤S5:函数返回值是共用体的字RTdata.worddata。
优选地,所述步骤S5中的函数通过访问外部地址,完成哑读操作,等待一段时间后,分别读取高低字节,存放到共用体RTdata中;获取字节操作从低地址开始,将获取的字节从高到低存放。
优选地,所述单片机实现1553B总线通信的方法还包括获得指令堆栈的数据块指针方法,所述指令堆栈的数据块指针方法包括如下步骤:
步骤1:读取指令堆栈的指针;
步骤2:将指令堆栈的指针与定义的变量比较;
步骤3:判断比较的内容是否一致;
步骤4:若不一致,则读取该消息块中的接收指令字Received Command Word,作为新的指令内容,存放到相应的union变量中;
步骤5:对变量加4;
步骤6:重复步骤1-步骤5,直到变量与指令堆栈的指针一致,所有新的指令都被读到并且保存下来,没有遗漏。
优选地,所述步骤4包括如下步骤:
步骤4.1:根据消息块的指令信息,识别出哪个数据块,是遥控还是遥测,调用不同的程序段;
步骤4.2:根据该数据块占用的长度循环取数,取到的数存入某共用体;
步骤4.3:对共用体中的数据进行包头判断,如果不正确即退出这个模块,执行步骤5;
步骤4.4:如果包头判断正确,对各个数据进行模255的ISO校验,直到所有的数据都校验完毕;校验正确后提取有效的阀门控制指令存入相应的寄存器后退出该模块,执行步骤5;如果发现ISO校验错误,直接退出模块,执行的步骤5。
优选地,所述步骤5中的每个消息块占4个字单元,在取完上一条指令后,要对变量加4。
本发明还提供一种基于单片机实现1553B总线通信的***,包括单片机对1553B芯片读操作***,所述单片机对1553B芯片读操作***包括如下模块:
模块M1:先读高8位,设置MSB_LSBn=‘1’,进行“哑读”操作,数据丢弃;
模块M2:等待一段时间;
模块M3:设置MSB_LSBn=‘0’,读低地址,存入共用体RTdata的高字节RTdata.bytedata[1];
模块M4:设置MSB_LSBn=‘1’,读高地址,存入共用体的低字节RTdata.bytedata[0];
模块M5:函数返回值是共用体的字RTdata.worddata。
优选地,所述模块M5中的函数通过访问外部地址,完成哑读操作,等待一段时间后,分别读取高低字节,存放到共用体RTdata中;获取字节操作从低地址开始,将获取的字节从高到低存放。
优选地,所述单片机实现1553B总线通信的***还包括获得指令堆栈的数据块指针***,所述指令堆栈的数据块指针***包括如下模块:
模块1:读取指令堆栈的指针;
模块2:将指令堆栈的指针与定义的变量比较;
模块3:判断比较的内容是否一致;
模块4:若不一致,则读取该消息块中的接收指令字Received Command Word,作为新的指令内容,存放到相应的union变量中;
模块5:对变量加4;
模块6:重复模块1-模块5,直到变量与指令堆栈的指针一致,所有新的指令都被读到并且保存下来,没有遗漏。
优选地,所述模块4包括如下模块:
模块4.1:根据消息块的指令信息,识别出哪个数据块,是遥控还是遥测,调用不同的程序段;
模块4.2:根据该数据块占用的长度循环取数,取到的数存入某共用体;
模块4.3:对共用体中的数据进行包头判断,如果不正确即退出这个模块,执行模块5;
模块4.4:如果包头判断正确,对各个数据进行模255的ISO校验,直到所有的数据都校验完毕;校验正确后提取有效的阀门控制指令存入相应的寄存器后退出该模块,执行模块5;如果发现ISO校验错误,直接退出模块,执行的模块5。
优选地,所述模块5中的每个消息块占4个字单元,在取完上一条指令后,要对变量加4。
与现有技术相比,本发明具有如下的有益效果:
1、本发明克服单片机8位数据接口,与1553B 16位数据总线接口的矛盾,提高数据处理效率,并具有一定的灵活性;
2、本发明利用1553B芯片接收消息后存放在指令堆栈的特点,利用查询而非中断的方式响应1553B总线,RT每次访问数据块指针而不是访问上一条指令寄存器,保证指令不会丢失;
3、本发明不占用1553B芯片中断的资源,对于遥测或者实时性要求不高的应用有很大的优势,能避免处理器内部中断冲突,合理利用资源。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明单片机对1553B芯片读操作流程图;
图2为本发明查询并读取指令流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明提供一种基于单片机实现1553B总线通信的方法及***,定义一个一维的两个元素的8位字符型数组,一个16位的整型变量,建立共用体,利用共用体中的变量共享存储空间,完成字节和字的转换,以及字节变量的高低位灵活读取。根据程序需要随时更新共用体中的字节或字,按需存取。另一方面,在1553B总线上消息的读取时,直接访问RT指令堆栈中的数据块指针,若判断到该指针已经指向下一条消息,则读取该消息包中的接收指令字(Received Command Word),该指令字就是新的指令内容,读取的数据存入共用体,通过控制共用体的指针,可以逐条访问消息地址,这样就能做到不漏一条消息。并且存入共用体的数据可以灵活的按字节运算或者按字运算。
利用共用体克服单片机8位数据总线匹配1553B的16位数据总线的限制,提高数据处理效率;定义指针追赶指令堆栈中的数据块指针,读取指令字,不漏一条消息;开辟一个共用体union,定义一个一维的两个元素的字符型数组、一个整型变量和一个指针类型,利用指针,完成字节变量的高低位灵活读取,并且可以根据程序需要随时更新共用体中的字节或字,按需存取。
利用共用体配合小尾端处理器体系结构,先读高8位,设置P0.0(MSB_LSBn)=‘1’,进行“哑读”操作,数据丢弃;设置P0.0(MSB_LSBn)=‘0’,读低地址,存入共用体的高字节;设置P0.0(MSB_LSBn)=‘1’,读高地址,存入共用体的低字节。
对1553B总线进行读操作,定义变量“追赶”指令堆栈中的数据块指针,若判断到数据块指针已经指向下一条消息,则读取该消息包中的接收指令字(Received CommandWord),该指令字就是新的指令内容,存入共用体。如果判断到数据块指针跟上一次一样,则表示没有新的消息。如此,根据堆栈空间的大小,可以缓存64条-512条消息不等,通过控制union的指针,可以逐条访问消息地址,这样就能做到不漏一条消息。
取指操作对同一条数据既可以实现字操作,也可以实现字节算法,而不会多占用内存空间。
在软件实现的时候,开辟一个共用体union,因为共用体中的变量共享存储空间,定义一个含两个元素的字符型数组、一个整型变量和一个指针变量来构建共用体,主要的作用是利用两者共享存储空间的特点,完美实现8位和16位的转化,同时利用指针,完成字节变量的高低位灵活读取。根据程序需要随时更新共用体中的字节或字,按需存取。
对于1553B总线上消息的读取,一般来说,都是通过访问上一条指令(lastcommand),但这样的做法容易丢指令。本发明结合开辟的union,直接访问RT指令堆栈中的数据块指针,若判断到该指针已经指向下一条消息,则读取该消息包中的接收指令字(Received Command Word),该指令字就是新的指令内容。如果判断到数据块指针跟上一次一样,则表示没有新的消息。如此,根据堆栈空间的大小,可以缓存64条-512条消息不等,通过控制union中的指针,可以逐条访问消息地址,这样就能做到不漏一条消息。
该发明目前已成功应用于某大型项目上,经过前期个阶段数次测试以及飞行试验验证,未发现丢指令现象。
首先定义一个共用体,内部定义3个成员,一个是内含2个字符型元素的一维数组bytedata[2],一个是整型变量worddata,一个是指针pt。
由于单片机的8位接口模式,8位数据总线同时连接到1553B芯片D15-D8以及D7-D0上,所以需要外部地址线以及选通信号来选择操作的是低字节还是高字节,对于读取的第一个字节要丢弃,称为“哑读”。本方法旨在把读取的字节写入共用体,这样就能把CPU总线的8位数据在内部自动转成16位的字。根据这个思路,设计读1553B总线的函数。
参照图1,具体步骤如下:
步骤S1:先读高8位,设置P0.0(MSB_LSBn)=‘1’,进行“哑读”操作,数据丢弃;步骤S2:等待一段时间;步骤S3:设置P0.0(MSB_LSBn)=‘0’,读低地址,存入共用体RTdata的高字节RTdata.bytedata[1];步骤S4:设置P0.0(MSB_LSBn)=‘1’,读高地址,存入共用体的低字节RTdata.bytedata[0];步骤S5:函数返回值是共用体的字RTdata.worddata。
该函数通过访问外部地址,完成了哑读操作,等待一段时间后,分别读取了高低字节,存放到共用体RTdata中,实现了1553B总线上16位数据的读取。此处需注意,获取字节操作从低地址开始,将获取的字节从高到低存放,这样得到的字才是正常变量的值。
参照图2,通过以下流程获得指令堆栈的数据块指针,步骤如下:
步骤1:读取指令堆栈的指针;步骤2:将指令堆栈的指针与自己定义的变量(假设变量名为Ptstu_my)比较;步骤3:判断比较的内容是否一致;步骤4:若不一致,则读取该消息块中的接收指令字(Received Command Word),作为新的指令内容,存放到相应的union变量(假设变量名为RTarray.worddata)中。
一般新的指令需要验证指令内容是否合法,比如模255的ISO校验,根据下述步骤验证:
步骤4.1:根据消息块的指令信息,识别出哪个数据块,是遥控还是遥测,调用不同的程序段;步骤4.2:根据该数据块占用的长度循环取数,取到的数存入某共用体;步骤4.3:对共用体中的数据进行包头判断,此时用字操作方便,如果不正确的话退出这个模块,执行步骤5;步骤4.4:如果包头判断正确,对各个数据(按字节)进行模255的ISO校验,直到所有的数据都校验完毕。校验正确的话提取有效的阀门控制指令存入相应的寄存器后退出该模块,执行步骤5。如果发现ISO校验错误,直接退出模块,执行的步骤5。
步骤5:对变量Ptstu_my加4。因为每个消息块占4个字单元,所以在取完上一条指令后,为了能追上数据块指针的位置,要对变量Ptstu_my加4;步骤6:重复步骤1-步骤5,直到Ptstu_my与指令堆栈的指针一致。也就是所有新的指令都被读到并且保存了下来,没有遗漏。
本发明还提供一种基于单片机实现1553B总线通信的***,包括单片机对1553B芯片读操作***,所述单片机对1553B芯片读操作***包括如下模块:
模块M1:先读高8位,设置P0.0(MSB_LSBn)=‘1’,进行“哑读”操作,数据丢弃;模块M2:等待一段时间;模块M3:设置P0.0(MSB_LSBn)=‘0’,读低地址,存入共用体RTdata的高字节RTdata.bytedata[1];模块M4:设置P0.0(MSB_LSBn)=‘1’,读高地址,存入共用体的低字节RTdata.bytedata[0];模块M5:函数返回值是共用体的字RTdata.worddata。函数通过访问外部地址,完成哑读操作,等待一段时间后,分别读取高低字节,存放到共用体RTdata中;获取字节操作从低地址开始,将获取的字节从高到低存放。
单片机实现1553B总线通信的***还包括获得指令堆栈的数据块指针***,指令堆栈的数据块指针***包括如下模块:模块1:读取指令堆栈的指针;模块2:将指令堆栈的指针与定义的变量比较;模块3:判断比较的内容是否一致。
模块4:若不一致,则读取该消息块中的接收指令字Received Command Word,作为新的指令内容,存放到相应的union变量中;模块4.1:根据消息块的指令信息,识别出哪个数据块,是遥控还是遥测,调用不同的程序段;模块4.2:根据该数据块占用的长度循环取数,取到的数存入某共用体;模块4.3:对共用体中的数据进行包头判断,如果不正确即退出这个模块,执行模块5;模块4.4:如果包头判断正确,对各个数据进行模255的ISO校验,直到所有的数据都校验完毕;校验正确后提取有效的阀门控制指令存入相应的寄存器后退出该模块,执行模块5;如果发现ISO校验错误,直接退出模块,执行的模块5。
模块5:对变量加4;每个消息块占4个字单元,在取完上一条指令后,要对变量Ptstu_my加4。
模块6:重复模块1-模块5,直到变量与指令堆栈的指针一致,所有新的指令都被读到并且保存下来,没有遗漏。
本发明建立共用体做8位、16位数据转换,也可以通过指针随意读取8位的高字节或低字节,轻松实现字节数据不同的拼凑需求,并节约内存空间,一定程度上解决了单片机8位总线匹配16位外部接口的局限。从应用案例来看,对于同一条指令,有些数据采用字处理比较方便,有些数据需要字节运算。比如数据包的包识别、包长度等,协议里明确定义数据内容的,可以采用读取共用体中的字来判断内容是否正确。但对于数据包的校验,例如用ISO校验方法作为包差错控制,需要对数据进行字节的模255运算,这时就可以通过读取共用体的相应字节来参与运算。
本发明采用追踪数据块指针的方法,可以根据需要开辟堆栈区大小,控制缓存的消息条目,可以缓存64条-512条消息不等,就算CPU由于其它中断打扰未能及时响应1553B总线指令,也能在响应完外部中断后,继续从堆栈读取指令,直到所有新指令都取完,做到无遗漏的接收到指令。
本发明灵活、简单易行,适用于大部分单片机与1553B总线的通信。本方法在探月三期推进线路盒以及新飞船推进***控制驱动器上都有成功的应用。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的***及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的***及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的***及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (6)

1.一种基于单片机实现1553B总线通信的方法,其特征在于,包括单片机对1553B芯片读操作方法,所述单片机对1553B芯片读操作方法包括如下步骤:
步骤S1:先读高8位,设置MSB_LSBn=‘1’,进行“哑读”操作,数据丢弃;
步骤S2:等待一段时间;
步骤S3:设置MSB_LSBn=‘0’,读低地址,存入共用体RTdata的高字节RTdata.bytedata[1];
步骤S4:设置MSB_LSBn=‘1’,读高地址,存入共用体的低字节RTdata.bytedata[0];
步骤S5:函数返回值是共用体的字RTdata.worddata;
所述单片机实现1553B总线通信的方法还包括获得指令堆栈的数据块指针方法,所述指令堆栈的数据块指针方法包括如下步骤:
步骤1:读取指令堆栈的指针;
步骤2:将指令堆栈的指针与定义的变量比较;
步骤3:判断比较的内容是否一致;
步骤4:若不一致,则读取消息块中的接收指令字Received Command Word,作为新的指令内容,存放到相应的union变量中;
步骤5:对变量加4;
步骤6:重复步骤1-步骤5,直到变量与指令堆栈的指针一致,所有新的指令都被读到并且保存下来,没有遗漏;
所述步骤4包括如下步骤:
步骤4.1:根据消息块的指令信息,识别出哪个数据块,是遥控还是遥测,调用不同的程序段;
步骤4.2:根据该数据块占用的长度循环取数,取到的数存入某共用体;
步骤4.3:对共用体中的数据进行包头判断,如果不正确即退出这个模块,执行步骤5;
步骤4.4:如果包头判断正确,对各个数据进行模255的ISO校验,直到所有的数据都校验完毕;校验正确后提取有效的阀门控制指令存入相应的寄存器后退出该模块,执行步骤5;如果发现ISO校验错误,直接退出模块,执行步骤5。
2.根据权利要求1所述的基于单片机实现1553B总线通信的方法,其特征在于,所述步骤S5中的函数通过访问外部地址,完成哑读操作,等待一段时间后,分别读取高低字节,存放到共用体RTdata中;获取字节操作从低地址开始,将获取的字节从高到低存放。
3.根据权利要求1所述的基于单片机实现1553B总线通信的方法,其特征在于,所述步骤5中的每个消息块占4个字单元,在取完上一条指令后,要对变量加4。
4.一种基于单片机实现1553B总线通信的***,其特征在于,包括单片机对1553B芯片读操作***,所述单片机对1553B芯片读操作***包括如下模块:
模块M1:先读高8位,设置MSB_LSBn=‘1’,进行“哑读”操作,数据丢弃;
模块M2:等待一段时间;
模块M3:设置MSB_LSBn=‘0’,读低地址,存入共用体RTdata的高字节RTdata.bytedata[1];
模块M4:设置MSB_LSBn=‘1’,读高地址,存入共用体的低字节RTdata.bytedata[0];
模块M5:函数返回值是共用体的字RTdata.worddata;
所述单片机实现1553B总线通信的***还包括获得指令堆栈的数据块指针***,所述指令堆栈的数据块指针***包括如下模块:
模块1:读取指令堆栈的指针;
模块2:将指令堆栈的指针与定义的变量比较;
模块3:判断比较的内容是否一致;
模块4:若不一致,则读取消息块中的接收指令字Received Command Word,作为新的指令内容,存放到相应的union变量中;
模块5:对变量加4;
模块6:重复模块1-模块5,直到变量与指令堆栈的指针一致,所有新的指令都被读到并且保存下来,没有遗漏;
所述模块4包括如下模块:
模块4.1:根据消息块的指令信息,识别出哪个数据块,是遥控还是遥测,调用不同的程序段;
模块4.2:根据该数据块占用的长度循环取数,取到的数存入某共用体;
模块4.3:对共用体中的数据进行包头判断,如果不正确即退出这个模块,执行模块5;
模块4.4:如果包头判断正确,对各个数据进行模255的ISO校验,直到所有的数据都校验完毕;校验正确后提取有效的阀门控制指令存入相应的寄存器后退出该模块,执行模块5;如果发现ISO校验错误,直接退出模块,执行模块5。
5.根据权利要求4所述的基于单片机实现1553B总线通信的***,其特征在于,所述模块M5中的函数通过访问外部地址,完成哑读操作,等待一段时间后,分别读取高低字节,存放到共用体RTdata中;获取字节操作从低地址开始,将获取的字节从高到低存放。
6.根据权利要求4所述的基于单片机实现1553B总线通信的***,其特征在于,所述模块5中的每个消息块占4个字单元,在取完上一条指令后,要对变量加4。
CN202110865399.XA 2021-07-29 2021-07-29 基于单片机实现1553b总线通信的方法及*** Active CN113590530B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110865399.XA CN113590530B (zh) 2021-07-29 2021-07-29 基于单片机实现1553b总线通信的方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110865399.XA CN113590530B (zh) 2021-07-29 2021-07-29 基于单片机实现1553b总线通信的方法及***

Publications (2)

Publication Number Publication Date
CN113590530A CN113590530A (zh) 2021-11-02
CN113590530B true CN113590530B (zh) 2024-03-29

Family

ID=78252066

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110865399.XA Active CN113590530B (zh) 2021-07-29 2021-07-29 基于单片机实现1553b总线通信的方法及***

Country Status (1)

Country Link
CN (1) CN113590530B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201417443Y (zh) * 2009-03-24 2010-03-03 中国科学院空间科学与应用研究中心 一种航空航天1553b总线通讯检测仪
CN103034499A (zh) * 2012-12-13 2013-04-10 中国航空无线电电子研究所 机载设备网络数据传输通用的数据格式转换方法及其***
CN103592908A (zh) * 2013-10-16 2014-02-19 中国运载火箭技术研究院 一种基于1553b总线的飞行器一体化测试***
CN103646003A (zh) * 2013-12-02 2014-03-19 西安航空制动科技有限公司 基于dsp的1553b总线协议模块
CN104199794A (zh) * 2014-09-04 2014-12-10 上海航天电子通讯设备研究所 1553b总线的协处理器***与协处理方法
CN106383693A (zh) * 2016-08-30 2017-02-08 武汉阿迪克电子股份有限公司 一种智能集中器及以测量点为标签的数据处理方法
CN112738649A (zh) * 2020-12-22 2021-04-30 北京航天自动控制研究所 一种基于无线技术的1553b总线通信装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9003096B2 (en) * 2011-03-16 2015-04-07 Texas Instruments Incorporated Serial interface

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201417443Y (zh) * 2009-03-24 2010-03-03 中国科学院空间科学与应用研究中心 一种航空航天1553b总线通讯检测仪
CN103034499A (zh) * 2012-12-13 2013-04-10 中国航空无线电电子研究所 机载设备网络数据传输通用的数据格式转换方法及其***
CN103592908A (zh) * 2013-10-16 2014-02-19 中国运载火箭技术研究院 一种基于1553b总线的飞行器一体化测试***
CN103646003A (zh) * 2013-12-02 2014-03-19 西安航空制动科技有限公司 基于dsp的1553b总线协议模块
CN104199794A (zh) * 2014-09-04 2014-12-10 上海航天电子通讯设备研究所 1553b总线的协处理器***与协处理方法
CN106383693A (zh) * 2016-08-30 2017-02-08 武汉阿迪克电子股份有限公司 一种智能集中器及以测量点为标签的数据处理方法
CN112738649A (zh) * 2020-12-22 2021-04-30 北京航天自动控制研究所 一种基于无线技术的1553b总线通信装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
The design of a kind of 1553B bus test unit based on multi-core DSP and FPGA;Qingzhong Jia;2017 2nd IEEE International Conference on Integrated Circuits and Microsystems (ICICM);全文 *
基于 BU-61580 的 1553B 总线通讯模块的设计和研制;张子明;中国优秀硕士学位论文全文数据库(第2期);正文第25-28页 *
星载1553B总线设计方法研究;吕芝艳;空间电子技术(第1期);第86-91页 *

Also Published As

Publication number Publication date
CN113590530A (zh) 2021-11-02

Similar Documents

Publication Publication Date Title
JP5500741B2 (ja) データ処理システムにおける割込承認
US20020144099A1 (en) Hardware architecture for fast servicing of processor interrupts
US20040194097A1 (en) Hardware assisted firmware task scheduling and management
US20040243739A1 (en) Method and apparatus for local and distributed data memory access ("DMA") control
US8990549B2 (en) Method and system for booting electronic device from NAND flash memory
US20020124161A1 (en) Data processing system having redirecting circuitry and method therefor
US9891986B2 (en) System and method for performing bus transactions
US4319322A (en) Method and apparatus for converting virtual addresses to real addresses
CN113590530B (zh) 基于单片机实现1553b总线通信的方法及***
US20040193808A1 (en) Local emulation of data RAM utilizing write-through cache hardware within a CPU module
US10203962B2 (en) Tigersharc DSP boot management chip and method
JPS63116236A (ja) 情報処理装置
US11755211B2 (en) Overhead reduction in data transfer protocol for NAND memory
CN112579518B (zh) 网络拓扑结构的构建方法、访问方法及装置
US5012410A (en) Data processor with instruction cache memory
US7073047B2 (en) Control chip and method for accelerating memory access
US7240144B2 (en) Arbitration of data transfer requests
CN113220608A (zh) 一种NVMe命令处理器及其处理方法
JP2002522828A (ja) インタフェース回路、およびシリアルインタフェースとプロセッサとの間でデータを伝送する方法
US5388239A (en) Operand address modification system
US5291603A (en) Microprocessor system with multiple interrupts masked for use in electronic control or monitoring of various solid-state products
CN114051611B (zh) 用于非连续存储器的dma分散和聚集操作
CN117742805B (zh) 芯片初始化方法和装置
US6742073B1 (en) Bus controller technique to control N buses
EP4109184A1 (en) Control device

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