《课程设计论文基于FPGA的1553B航空总线协议接口芯片设计.doc》由会员分享,可在线阅读,更多相关《课程设计论文基于FPGA的1553B航空总线协议接口芯片设计.doc(19页珍藏版)》请在三一办公上搜索。
1、基于FPGA的1553B航空总线协议接口芯片设计摘要:针对以往1553B航空总线接口电路管理复杂、体积较大、功耗较高、成本较高、难以重新编程修改、无法适应不同环境多种机体等问题,本文提出利用FPGA的可移植性、高度集成性、在系统可编程等性能优势,设计基于FPGA的1553B总线接口芯片。在QuartusII上,采用VHDL语言进行了该接口芯片曼彻斯特编码器设计;曼彻斯特解码器设计;曼彻斯特数据编码控制与监视器设计,分析数据字的命令并进行相应控制及监视,以提高可控制性;曼彻斯特解码控制与监视器的设计,分析数据字工作方式,及时反馈错误,并实现控制与监视,以提高可靠性。实验结果表明,基于FPGA的1
2、553B总线接口芯片的各模块设计符合要求,能对数据进行正确的曼彻斯特编码、解码,能对命令进行正确的分析处理等。应用FPGA进行设计,可获得自主知识产权且性能正确可靠的航空总线接口芯片,并具备在系统可编程等特点。关键词:1553B航空总线 接口芯片 FPGA VHDL 曼彻斯特编码 曼彻斯特解码目 录1 引言- 1 -2 基于1553b总线协议的系统概述- 2 -2.1 1553b总线协议概述- 2 -2.2系统功能分析及顶层规划描述- 3 -3 系统各模块的设计- 4 -3.1 曼彻斯特解码器模块- 4 -3.1.1曼彻斯特解码器设计流程及实现- 4 -3.1.2曼彻斯特解码器状态机- 6 -
3、3.1.3曼彻斯特解码器模块的VHDL实现- 7 -3.2 曼彻斯特编码器模块- 8 -3.2.1曼彻斯特编码器设计流程及实现- 8 -3.2.2曼彻斯特编码器模块的VHDL实现- 10 -3.3 曼彻斯特解码采集控制器设计- 12 -3.4 曼彻斯特编码采集控制器- 13 -4 仿真图形及实验结果- 14 -4.1曼彻斯特解码器的仿真实验结果- 14 -4.1.1 同步字检测的仿真实验结果- 14 -4.1.2 曼彻斯特解码器的仿真- 14 -4.2曼彻斯特编码器的仿真实验结果- 15 -5 外围硬件电路- 15 -6 结论- 17 -参考文献- 17 -致 谢- 18 - 16 -1 引言
4、MIL-STD-1553B总线协议是一种集中控制式、时分指令/响应型多路串行数据总线标准,具有高可靠性和灵活性,已经成为现代航空机载系统设备互联的最有效解决方案。现已广泛应用于飞机、舰船、坦克等武器平台上,并越来越多的应用于民用领域。基于现场可编程门阵列 (FPGA) 核心的MIL-STD-1553B航空总线的设计与实现体现了现代航空电子设计的新思路与方法。此项技术具有多种优势:如废弃组件管理、降低设计风险、提高集成度、减小体积、降低功耗和提高故障平均间隔时间(MTBF)等6,吸引着用户将原来的系统转移到此项技术。在高要求的军用设计中,每项设计模块的设计空间、功耗和重量都必须减少。特别对于军用
5、航空方面,满足这些要求至关重要。由于上述要求直接作用于芯片级别,若使用单一的传统芯片,体积减小后会对多项板卡的要求降低,从而导致外壳封装,元件固定,器件冷却等要求降低。相反的,如若添加组件,必然增加故障发生概率。如若利用基于现场可编程门阵列 (FPGA)来减少芯片数量固然有助于降低误码率,缓解这些问题。过去,典型的1553B系统一般都由多个COTS组件构成MIL-STD-1553B总线的I/O通常由单一来源的带有内部处理功能的 ASIC 提供,这种内部处理可提供消息处理与缓冲以及对MIL-STD-1553比特流进行编解码等。ASIC 中可能含有也可能没有向MIL-STD-1553总线提供物理接
6、口的收发器组件。每个 ASIC 为一个双冗余MIL-STD-1553通道提供此功能。所以支持多个 MIL-STD-1553 通道的系统就需要多个 ASIC 和收发器。与每个 MIL-STD-1553 总线的连接是通过板载变压器实现的。最后,由一个或几个可编程的 FPGA 设备将 MIL-STD-1553 ASIC 连接到主系统,并提供更多的系统功能,如其它 I/O、存储器访问和处理器接口等。6 FPGA通常以逻辑单元或门来度量。有多种形式架构,并提供了丰富的 I/O 引脚可供使用。FPGA 还可提供内部存贮器。现代 FPGA 海量的存贮和功能使其成为 MIL-STD-1553 设计最理想的选择
7、其核心为预先定义的、且经过测试的功能,这些功能可以应用到FPGA设中。 其主要优势还有:1) 线性局域网络结构,减少了电缆、所需空间和系统的重量,便于维护,易于增减节点,提高设计灵活性2) 支持多种节点3) 高水平的电气保障性能4) 良好器件可用性5) 保证实时可确定性,其命令/响应的协议方式确保了其实时可确定性【4】2 基于1553b总线协议的系统概述2.1 1553b总线协议概述1553B总线协议是由美国军方在20世纪70年代制定的,在航空、航天、军事等领域应用广泛协议采用双向曼彻斯特码,数据在总线上以串行脉冲形式传输,传输速率为1Mbs协议规定的信息字类型有3种,分别是命令字、数据字和状
8、态字总线上连接的节点类型有3类:总线控制器(BC)、远程终端(RT)和总线监视器(BM)其框图如图1所示。 图1.1总线与总线控制器(BC)、远程终端(RT)和总线监视器(BM)挂接框图一条总线上挂有1个BC,1个MT和至多31个RT总线传输的消息格式有BC到RT,RT到BC,RT到RT,广播以及方式代码5 1553B有三种字格式分别为:命令字,数据字,状态字.其消息字格式如图1.2所示。图1.2 MIL-STD-1553B总线消息格式如图所示,同步头为三位,命令字与状态字(先正后负,前1.5个脉冲为高电平,后1.5个脉冲为低电平)与数据字(先负后正,前1.5个脉冲为低电平,后1.5个脉冲为高
9、电平)不同由于1553B在通信时使用的是曼码编码,而且同步字有半个脉冲的变化,故可倍频将20位字格式曼码编码后视为为40位62.2系统功能分析及顶层规划描述1553B航空总线接口芯片的设计主要达到以下功能:1)正确完成曼彻斯特码的编码,以完成对子系统的控制与总线的通讯。2)正确完成曼彻斯特码的解码,以完成信息数据的通讯与反馈。3)对编码与解码的结果进行监视与控制,以增加整体系统的可靠性。本文设计可完成对总线控制、远程终端信息通讯及反馈和总线信息传输的监视等三方面的功能,即可完成总线控制器(BC)、远程终端(RT)和总线监视器(BM)等三方面的功能。图2.1为芯片核内设计框图。时钟管理解码器编码
10、器BC/RT译码管理模块RAM信号监视与指示灯预留接口通信接口管理BC/RT编码模块RAM信号监视与指示灯预留接口接口处理1553B总线并串转换图2.1芯片核内设计框图通道A:反馈的状态消息字或是传输用的数据消息字信息,经串并转化后进行曼彻斯特解码,分别解读出消息的同步头、校验位及其数据信息,送入管理模块判断。并点亮相应的指示灯。通道B:作为BC(RT)发出命令(状态)字或是传输用的数据字,先经由管理模块进行判决分析,点亮对应的指示操作灯。同时也起到缓存作用。在此之后,由编码器进行编码输出通信。3 系统各模块的设计3.1 曼彻斯特解码器模块1553B协议要求利用曼彻斯特码传输,曼彻斯特编码要求
11、:消息位1要编码为”10”消息位0要编码为”01”曼码的时钟扫描频率为字扫描频率的两倍同步字若用曼码扫描频率可等效为”111000”或”000111”根据曼码的编码要求 同步字为无效字段既可以实现同步功能3.1.1曼彻斯特解码器设计流程及实现曼彻斯特解码器在接口设计中作为数据接收端,将经过编码的曼彻斯特码接收,并进行解码。然后转换成并行数据输入处理器进行数据处理。设计流程如图3.1所示:否是否是否是开始检测同步字头序列数据序列的读入数据采集与储存并计数数据是否采集完毕解码程序的调用并开始解码全解码数据序列储存判断奇偶效验位解码成功发送信息结束图3.1 曼彻斯特解码器程序流程图此模块功能:1、同
12、步数据输入及时间的采集。2、同步字的检验。3、对曼彻斯特码进行检验与处理,解码后转换成并行数据送入处理器,并进行奇偶效验。其逻辑框图如图3.2所示。同步字头状态检验时钟输入曼码输入采样计数数据采集与解码数据准备完毕奇偶效验数据寄存曼码解码控制模块图3.2 曼彻斯特解码器逻辑框图其时钟频率与传输频率相同,同步字检验由状态机完成。由于同步字是由“000111”或“111000”等,为无效曼彻斯特码故可用状态机判断输入序列的同步字起始位置,同步字后的为输入的有效数据序列段,探测到有效的同步字头后,开始采集和解码并储存,同时进行数据的计数,在数据的尾部进行奇偶效验位的判定,决定此序列是否需要重发。当数
13、据准备完毕后,以并行数据形式,送入处理模块。3.1.2曼彻斯特解码器状态机由于要检索同步字头以判断数据类型,故加入状态机以助于同步字的检测。例如对“111000 ”序列进行检测,其检测状态跳变如图3.3所示。00011101110001S0S2S6S3S5S4S1 图3.3 同步字检测器的状态图(111000)图中S0为初始状态同时也是接受一个或是多个0的状态;S1为接受一个1的状态;S2为接受到两个1的状态;S3为接受到三个1的状态同时也是接受到若干个1的状态;S4为检测到“1110”序列的状态;S5为检测到“11100”的状态;S6为检测到“111000”的状态再接受一个0则跳转至S0。在
14、状态机初始为状态S0接收到1时进入状态S1接收到0则状态不变。状态S1开始对序列检测。当检测状态跳转至S6时,则说明同步字头(111000)检测成功,即开始下一步的解码分析。3.1.3曼彻斯特解码器模块的VHDL实现核心程序段如下:architecture behave of test5 isfunction decode_n(I: std_logic_vector (1 downto 0) return std_logic isvariable S: std_logic;beginif I=01 then S:=1;elsif I=10 thenS:=0;elseS:=Z;end if;re
15、turn S;end decode_n;process (clk,en) beginif rst=0and en=1 then for i in 0 to 16 loop d_outn(i)=decode_n(d_inn(2*i+7 downto 2*i+6); end loop; -解码函数 odd =d_outn(0) xor d_outn(1) xor d_outn(2)xor d_outn(3)xor d_outn(4)xor d_outn(5)xor d_outn(6)xor d_outn(7)xor d_outn(8)xor d_outn(9)xor d_outn(10)xor d
16、_outn(11)xor d_outn(12)xor d_outn(13)xor d_outn(14)xor d_outn(15) xor d_outn(16); odderr=odd; -奇偶为判决 d_out(15 downto 0)=d_outn(15 downto 0); end if; end process;end behave;3.2 曼彻斯特编码器模块3.2.1曼彻斯特编码器设计流程及实现曼彻斯特编码器接收来自编码控制模块(将子系统的数据进行采集分析,并发送)的16位1553B协议数据,同时接收同步字头的生成控制信号。数据经采样后进行数据编码,根据发送的指令字与命令字以及数据的
17、类型,产生相应的同步字头。在数据尾端加入奇偶效验位,以并行数据发送至数据并串转换转换器,后进行并串转换。其设计流程如图3.4所示:开始时钟输入与数据输入包括同步字头命令采集数据序列的读入是否复位生成相应的同步字头对输入的数据进行编码包括奇偶校验为的编码生成奇偶校验位并行输出结束图3.4 曼彻斯特编码器模块的程序流程图 曼彻斯特编码器主要功能:1、同步字的生成:编码器检测数据类型,根据数据的控制端口输入控制同步字的生成。2、奇偶效验位生成:根据输入的16位的数据产生奇偶效验位。3、曼彻斯特编码的生成:将同步字头、编码数据及奇偶效验位储存并发送至并串转换器,以生成编码数据。16位并行数据输入数据寄
18、存奇偶效验位生成数据类型输入同步字生成曼彻斯特码生成串并转换时钟管理输入1553B总线图3.5 曼彻斯特编码器逻辑框图对16位并行数据进行奇偶判定,并根据输入的数据类型信息决定曼码的同步字头,同时对输入信号进行编码,之后一并输出进行通信。3.2.2曼彻斯特编码器模块的VHDL实现核心程序段如下:architecture behav of coder isfunction code_n(I: std_logic) return std_logic_vector isvariable S: std_logic_vector(1 downto 0);beginif I=1 then S:=01;el
19、sif I=0 thenS:=10;elseS:=ZZ;end if;return S; -解码函数begin A1:process(d_in,rst)beginif rst=1 thenbuffe0);odd=0;elsefor i in 0 to 15 loopbuffe(2*i+7 downto 2*i+6 )= code_n(d_in(i);end loop;if csw=1 then buffe(5 downto 0)=000111;else buffe(5 downto 0)=111000;end if;odd=0;odd=d_in(0) xor d_in(1) xor d_in(
20、2) xor d_in(3) xor d_in(4) xor d_in(5) xor d_in(6) xor d_in(7) xor d_in(8) xor d_in(9) xor d_in(10) xor d_in(11) xor d_in(12) xor d_in(13) xor d_in(14) xor d_in(15);buffe(39 downto 38)= code_n(odd);ok= buffe(39)xor buffe(38); -奇偶位判决if ok=1 thend_out(39 downto 0)=buffe(39 downto 0);en=1;elsed_out(39
21、downto 0)Z);en=0;end if;end if;end process;end behav;开始读入同步字控制位数据序列的读入是否复位生成相应的同步字头调用编码器函数进行编码生成奇偶校验位暂存等待输出结束图3.5.1 进程A1的流程图3.3 曼彻斯特解码采集控制器设计曼彻斯特解码采集控制器主要负责将采集的解码后的数据进行分析处理并暂时储存。分析出所有消息包含的信息进行分类,并发送给CPU或子系统(RT)进行进一步操作。同时可将引脚引出观察用,以达到总线监视器(BM)的功能要求。以曼彻斯特解码采集控制器为例,其原理框图如图3.6 所示。解码后数据输入解码后同步字信息读入RAM储存数
22、据处理将已解码的数据及解码后处理分析的相关信息位发经处理分析后的信息位引出引脚(BM观察用)图3.6曼彻斯特解码采集控制器原理框图3.4 曼彻斯特编码采集控制器曼码数据编码控制器主要负责将来自CPU或子系统(RT)的数据及控制信息进行分析处理,同时进行暂时的储存。当分析完毕后将分析的结果中参加编码的部分发送给编码器,进行编码。其余的部分进行公示,以达到总线监视器(BM)的功能要求。其原理框图如图3.7 所示。RAM储存数据处理将经过分析和处理后的数据发送给编码器进行编码通讯经处理分析后的信息位引出引脚(BM观察用)从cpu采集数据字从cpu采集控制命令位图3.7曼彻斯特编码采集控制器原理框图4
23、 仿真图形及实验结果4.1曼彻斯特解码器的仿真实验结果4.1.1 同步字检测的仿真实验结果同步字检测器采用状态机设计。测试同步字头“111000”的结果如图4.1所示。图4.1 同步字检测仿真结果波形图中,xi为输入的序列,输出zo为1则表示检测到有效序列“111000”。从上图可看出输入有两个有效序列“111000”的存在,输出zo正确检测到了两次。因此可证明结果正确。4.1.2 曼彻斯特解码器的仿真曼彻斯特解码器的仿真实验结果如图4.2所示。图4.2 曼彻斯特解码器的仿真结果图中,clk为输入的采集时间频率,din为输入的串行数据,d_out为数据的解码输出。odderr为奇偶校验位判别。
24、图中输入的串行序列为“1110001010100101011010101001010110100110”此序列包括起始的同步字头“111000”与末尾的奇偶校验位“10”。经过曼彻斯特解码器将中间的数据解码后为“1110001111000110”,与图中d_out输出(逆序)相符。奇偶校验位发送正确。4.2曼彻斯特编码器的仿真实验结果同步字头的判断引脚接编码控制模块,由控制模块对数据进行预处理,并直接向解码器发送控制命令,以决定同步字头。编码后并行发送数据,利用并串转换,得到串行数据。图4.3 曼彻斯特编码器仿真图clk 为时钟脉冲,csw 由编码控制模块控制。为输入的同步字头控制信号。d_i
25、n、d_out分别为并行的数据输入及编码后的数据输出。Rst为复位引脚。en为使能引脚。上图中,d_in输入的数据信号为“0101000111000111”(逆序),经过编码器后,当为命令同步字头时(csw为1)的编码序列为“1110000110011001010110101001010110101001”最后两位为奇偶检验位的0的编码“01”,同步字头为“111000”同样的,当为数据同步字头时(csw为0)的编码显示仅仅与前面的编码序列的同步字头不同,为“000111”其他均相同。由此可证明该编码正确。5 外围硬件电路图5.1外围电路pcb版图图5.2 外围电路实际照片图5.3 外围电路实
26、际照片26 结论本论文设计了一种1553B的总线接口芯片,并且将所设计的芯片利用FPGA实现,经过电路的仿真测试表明,设计的芯片可以很好的完成设计预期要求。可以实现数据的正确的接收与发送,并同时进行监视。可以完成总线的通信。MIL-STD-1553B总线协议对时间的要求很严格,如果时间延迟或者消息处理速率较慢便很容易造成消息错误,所以在设计模块时要先设定好时间管理模块的处理速度和执行效率,并对时间管理进行统一处理。设计之中应该注意以下几点:1.各个模块之间应该尽量使用同步时钟。2.设计中应该尽量使用时钟边沿触发的寄存器,因为电平触发的锁存器无法阻断毛刺的传播,而且消耗资源比较大,容易造成电路的
27、误操作。3.尽量消除输入信号的竟争和冒险,以免寄存器得到中间状态,输出错误结果。4.用状态机进行控制逻辑设计,例如同步字序列检测,此法可方便对复杂控制逻辑的设计和修改,并且节省资源。本论文的设计仅是通过FPGA实现了接口逻辑功能,但是在FPGA芯片上实现1553B总线接口还需要进行相应的修改并对模块进行再优化,利用更少的资源实现更加优化的接口逻辑,完成更多功能的集成化。参考文献1 Department of Defense.US.Military standard aircraft internal time division command/response multiplex data b
28、us.1978.9.21:l-352 张豫榕,1553B总线原理及其应用.现代电子工程.2004(4):1一33* 王建伟 学位论文 基于FPGA的1553B总线接口设计 *4*陕西正鸿航科电子有限公司MIL-STD-1553B总线介绍入门教程素材*5 *航空电子系统设计中FPGA技术的应用 2010-03-18 12:00:09作者:来源:电子技术应用*6zhangxiangrong 1553 B bus principle and its application. Modern electronics engineering. 2004 (4) : 1 a 3 7 WangJianWei degree thesis on FPGA 1553 B bus interface design 8 Shaanxi zhenghonghangke electronic Co., LTD mil-std-1553 B bus is introduced how-to tutorials material