1 改装系统简介
飞机航空电子系统的改装,就是把功能相对独立的子系统逐步走向综合,例如将雷达、惯导、gps和机载计算机联合,组成新型航空图导航系统。通俗点讲,就是将那些“傻、大、粗、笨”的仪器仪表,集成为“少而精”的智能仪表,减轻飞行员的操作难度。
系列多机型改装时的多功能显示器,它将原来分散显示的信息和数据集中在一台多功能显示器上。替换掉原来“老死不相往来”的各种导航仪表,不再需要领航员大量记忆枯燥的数据,减少了仪表种类,节省了宝贵的空间,极大减轻了领航员工作强度。图1中除了地图视频采用lvds外,其它仪表通信都采用arinc429总线。显然,解决多通道的arinc429通信成为本次改装的瓶颈。
传统的arinc429通信设计中,大多采用harris公司的hs3282或device engineering公司的dei1016。但在此则极不经济,完成多通道429通信,需要多个芯片和更多的布板空间,功耗也线性增加。
特别地,传统的多通道的429需要更加多的cpu中断请求线,需要外部复杂的逻辑设计。ts68c429a则是目前解决多通道429通信最为有效的途径。和传统的“两收一发”的芯片相比较,它是“八收三发”,“一片顶四片”。
2 ts68c429a的主要特征
atmel公司的ts68c429a是高性能、多通道、低功耗的cmos型429接口,亦能满足类似的时分多路串行数据通信。
整个芯片只需单5v工作电源。它具有8路接收、3路发送。所有的接收通道和发送通道都是彼此互独立,可同时并行工作。8个接收通道之间也是独立的并行接收,可以直接连接到arinc429总线,而不需电平转换。数据字长是标准的32-bit,25-bit的并不支持。
主要特征有如下几点:
8个独立的接收通道;3个独立的发送通道;和所有的ts68k系列的微处理器接口兼容;16-bit数据总线;符合arinc2429接口,归零制编码(return zero code);支持所有的arinc429数据传输率,最高可达2.5mbit/s,传统的arinc429芯片的速率只有2种可选;多标号能力,传统的芯片要么不检查标号,要么就接收一个指定的标号;校验控制(奇校验、偶校验、无校验,中断能力);rx、tx的数据率可独立编程;每个发送通道有8个信息单元的fifo;向量式中断;可组成菊花链中断;所有的寄存器都是可直接寻址的;具有自测试能力;工作频率为20mhz;低功耗:400mw。
3 硬件设计
ts68c429a接收和发送通道都成倍增加,但毕竟不是通道的简单叠加,不是传统接口的线性扩展,在相关器件选型和设计中需要仔细推敲。
3.1 基本硬件接口
基本硬件接口就是和嵌入式cpu的接口电路。根据arinc429数据特点,至少要选16-bk数据总线以上的cpu。ts68c429a和所有的ts68k系列的cpu接口兼容,像ts68000、ts68020都可以只需要增加非常简单的接口逻辑。特别是ts68302完伞可以“无缝连接”。无缝连接就是两个复杂芯片不需要“粘合逻辑”,对应信号直接相连。
在设计基本电路时需要注意以下几点:
3.1.1 嵌入式cpu选型。
cpu的数据总线至少应该是16bit的,否则在硬件上要增加字节转发电路,设计复杂度上升。如果在中断响应时想迅速判断中断源,cpu存中断响应时应该能够发出中断响应(iack)信号,由ts68c429输出中断向量,由cpu回读后硬件判断,直接进入对应中断服务例程,节省软件响应时间。除ts68k系列外,符合这个要求的还有最广泛使用在pc机上的x86系列,如inte180486等。显然,ts68c429的中断响应机制,完全类似x86系列中的8259 中断控制器时序,可以直接无缝连接。值得指出的是,x86系列的中断请求是高有效,中断请求信号需要反相。
3.1.2 时钟
传统的arinc429芯片只有一个时钟,人多数是1mhz,用以控制收发速率。速率有2种选择,即速率是时钟的十分之一或八十分之一,亦即100k或12.5k。在这里,ts68c429需要2种时钟,系统时钟和arinc429收发时钟。系统时钟clksys用来控制cpu接口时序,应该和cpu时钟相同,在这里直接使用ts68302的输出时钟clk0。在使用其它型号的cpu时,clksys可以直接和cpu时钟连接在一起。clk429使用了定时器输出tout1,用来决定429串行数据传输速率。存使用其它型号的cpu时,也可以设计一个独立的时钟做clk429。
3.1.3 高、低字节访问
处理器对ts68c429每次访问都应该是16bit的,除了这里和ts68302的无缝连接,还可以把高字节选通信号(/uds)和低字节选通信号(/lds)一起直接接地。cpu一般足字节编址的,所以应该足a9…a1对应ts68c429的a8…a0。
3.1.4 存储器周期
无论是读周期还是写周期,ts68c429都要用/dtack应答cpu。ts68k系列中的/dtack,即数据传输周期应答(data transfer acknowledge),本质上就是许多cpu的ready信号。如果使用别的型号cpu,ready属于高有效,需要对/dtack进行反相。
3.2 中断菊花链电路
对于大多数应用来讲,一片ts68c429基本可以满足多通道429通信要求。当要求更多通道时,ts68c429a可以采用菊花链的彤式设计。
菊花链(daisy chain)是一种阻塞式级联结构,排在前面的优先级高于其后的所有单元。在任一时刻,高优先级若果发出中断,就禁止了比它自身优先级低的中断。共有u1、u2…un个单元,其中u1具有最高优先级,un优先级最低。当某一单元需要发出中断时,首先要判断前面是否有高优先级的中断,即判断传递下来的中断使能信号/ieixx,当其为低电平时,可以发出,当其为高电平时禁止发出。禁止中断发出时,要一直等待到前面中断响应完成后再发出。最极端的情况就是,某些低优先级的中断单元永远没有机会发出中断,设计菊花链电路时,要综合平衡各通道的数据流量。
4 软件设计
上电复位后,软件应在正式工作前初始化ts68c429。传统的芯片只需要要写一次控制寄存器,但多通道的初始化要复杂一些。
4.1 寄存器映像
在传统的arinc429只有一个控制寄存器,由于通道少,每个通道分配专用的选通信号,硬件简单译码即可。在多通道的芯片中,不可能继续采用这种办法。整个芯片只有一个总的片选(/cs),然后由地址a8..a0来寻址片内寄存器。系统的初始化,本质就是正确配置这些寄存器。
8个接收通道,每个都有自己的4类专用寄存器区。
4.1.1 接收控制寄存器(receive control register)
这是一个可读可写的寄存器,它控制本通道的中断优先级、校验、标号、测试模式以及通道使能等配置。如果有2个通道的中断优先级相同,就有一个永远发不出中断。如果设置本通道处于测试模式,则第三发送通道的数据在内部回环到本通道。这个特征是用来做通道自检的。
4.1.2 间隙寄存器(gap register)
间隙寄存器是一个只写寄存器。写入值是以clk429时钟周期为单位的计数值,实际是定义了相邻两个429数据的最小间隙。在传统的芯片中,最小间隙是固定的。在这里,必须显式地设置这个寄存器,决不能隐含使用复位缺省值。
4.1.3 数据缓冲区(message buffer)
数据缓冲区是2个16bit的只读寄存器,存放接收到的arinca29数据。采用中断接收时,主要就是读这2个寄存器。高16bit(most significant word,msw)存放在低地址,低16bit(least significant word,lsw)存放在高地址。读数据时先读msw,再读lsw。
4.1.4 标号控制矩阵(label control matrix)
这是一个256×1bit的存储器区。许多人不理解这个区的含义,不会配置,以致系统不能正确运行。众所周知,arinc429规范的低8bit属于标号区(label),标号代表了数据类型,例如72h代表高度数据,73h代表角速度等。这样总计有256个标号。标号控制矩阵的某地址设置为“1”,就允许该通道接收对应标号的数据,清除为“0”,就禁止该标号的数据。硬件复位之后全部清“0”,也就是禁止接收一切数据,这就是系统不运行的原因。
3个发送通道,每个都有自己的3个专用寄存器。
4.1.5 频率寄存器(frequency register)
这是一个只写的寄存器,写入值是发送速率的除数因子。
发送速率=clk429/fr除数因子
根据这个公式,用户可设定选择的速率。传统的arinc429没有这个功能,只有2种固定的速率。
4.1.6 发送控制寄存器(transmitter control register)
和接收控制寄存器类似,这是一个可读可写的寄存器,它控制本通道的中断优先级、校验、是否作为测试模式的发送、以及通道使能等配置。其中的发送间隙是控制连续发送的两个32bit的akinc429信息之间最小间隙,防止接收方覆盖溢出。
4.1.7 发送fifo
fifo,即“先进先出”(first in first out),基本元素可以认为是2个16bit的寄存器。软件必须先写入msw,再写入lsw,这和接收通道顺序是一致的。fifo深度为8个arinc429信息。存写入之前,必须验证fifo未满,否则写入数据被丢弃。在fifo只要满队列的fifo发送了一个元素,此时fifo虽然未空,但也未满,就可以写入后一个数据。
除了接收通道和发送通道的专用寄存器,还有儿个通用的寄存器,如通道状态寄存器、中断屏蔽寄存器,中断向量基址寄存器等,不再赘述。
4.2 复位初始化
上电复位之后,所有寄存器清“0”,各通道处于禁止状态,需要软件显式初始化。下面给出接收通道和发送通道的初始化流程。
4.3 arinc429数据的接收与发送
系统工作后,初始化的通道就可以接收发送了。一般的,因为不可预测接收数据何时到达,正式工作后接收采用中断驱动,发送采用查询,这样既可以不丢失数据,又可以掌控发送节奏。查询接收的办法,一股使崩在系统初期硬件调试阶段。在上篇文章中,介绍了中断采用环形接收队列,这个方法非常有效。在此不再赘述环形队列访问算法。下而给出查询/中断收发流程。
ts68c429集成度高,是改装原来分散的arinc429设备的一种合理有效的选择。我们已将上述设计应用在多个不同种类的航空电子系统中,证明是十分有效的。随着航空电子系统的更新换代,ts68c429的应用将更加广泛。
峰会回顾第6期 | 毕昇编译器与OpenHarmony RISC-V生态的进展
PDH光端机的原理_PDH光端机的作用优点
rfid技术能否助力实现制品可视化管理
电机绕线组过热的原因与解决-「安的电子」
普通开关和霍尔开关区别在哪里?
基于CMOS型429接口TS68C429A实现ARINC429通信的应用设计
Linux中IEEE1394组网技术的实现
追势记忆领航系统解决众包地图的瓶颈问题
C6000系列DSP Flash二次加载技术研究
华为正式发布全光网2.0解决方案加速5G时代的到来
传感器在VR中有着什么样的作用
基于压力传感器的温度控制系统设计
苹果新增Apple ProRAW功能
通过多样性激发开放协议栈,第五部分
如何挑选VR眼镜?只买贵的?那你就错了!
【世说芯品】方案解析:安路科技SF1动态图片显示应用设计
单相电机电容接线图和方法
史上首款人工智能VR眼镜最新谍照流出
松下公司开发了一种新型红外医学成像投影系统
英威腾岸电电源在某运输码头上的应用