2023年12月18日发(作者:)
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
HT-6302
ARINC429总线PCI插卡
使用说明书
中国航天科工集团三院8357研究所
天津市英贝特航天科技有限公司
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 1 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
目 录
1 概述...........................................................................4
2 主要技术指标...................................................................4
3 硬件使用说明...................................................................4
3.1 硬件组成.................................................................4
3.2 跳接针使用说明...........................................................6
3.2.1 ARINIC429收发速率选择.................................................6
3.2.2 其它跳接针使用说明.....................................................6
3.3 对外接口信号定义.........................................................6
4 软件使用说明...................................................................6
4.1 ARINC-429数据格式......................................................6
4.1.1 ARINC-429 32位格式....................................................7
4.1.2 ARINC-429编程格式.....................................................7
4.2 双口RAM协议.............................................................7
4.3 信号灯的分配和使用......................................................9
4.3.1 关于信号灯的说明.......................................................9
4.3.2 信号灯的分配...........................................................9
4.3.3 信号灯的使用...........................................................9
4.3.4 信号灯的例子..........................................................10
4.4 中断的编程说明..........................................................10
4.5 接收工作方式............................................................10
4.5.1 接收方式的工作原理....................................................10
4.5.2 接收中断及标志的产生..................................................10
4.5.3 接收计数..............................................................11
4.5.4 其它注意事项..........................................................11
4.6 发送工作方式............................................................11
4.6.1 发送数据间隔..........................................................11
4.6.2 发送帧间隔............................................................11
4.6.3单发方式发送控制......................................................12
4.6.4 自动循环方式发送控制..................................................12
4.6.5 发送控制实例..........................................................12
4.7 自检工作方式............................................................12
4.8控制命令................................................................13
4.8.1 设置接收控制命令......................................................13
4.8.2 取消接收控制命令......................................................13
4.8.3 设置校验位命令........................................................13
4.8.4 设置发送器速率命令....................................................13
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 2 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
4.8.5 设置接收器速率命令....................................................13
4.8.6 设置数据长度命令......................................................13
5 编程说明......................................................................14
5.1 WINDOWS程序说明........................................................14
5.1.1动态链接库说明........................................................14
5.1.2 演示程序说明..........................................................18
5.1.2.1 演示程序安装........................................................18
5.1.2.2 演示程序使用说明....................................................18
5.1.3 驱动程序的安装........................................................20
5.2 WINCE下程序说明........................................................20
5.2.1 驱动程序的安装........................................................20
5.2.2 动态链接库说明........................................................21
5.2.3 演示程序说明..........................................................25
5.3 Linux下程序说明........................................................25
5.3.1 驱动程序的安装........................................................25
5.3.2函数库的安装..........................................................26
5.3.3应用程序与函数库的链接................................................26
5.3.4库函数说明............................................................26
5.4 VxWorks下程序说明......................................................30
5.4.1 驱动程序的安装........................................................30
5.4.2 驱动函数说明..........................................................30
5.4.3 演示程序说明..........................................................33
6 配件/选件.....................................................................34
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 3 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
1 概述
ARINC429总线PCI接口板,代号为HT-6302,是采用PCI
总线的专用ARINC429接口板。板上共有六个接收通道和三个发
送通道,传输速率为100Kbps、50Kbps、48KKbps和12.5Kbps
跳线可选。板上采用微处理器386EX处理ARINC429的数据通信,
双口RAM用于与主机交换信息。
2 主要技术指标
★ 满足ARINC429总线通讯标准
★ ARINC429控制器为HS1-3282-8
★ ARINC429总线驱动器为HS1-3182-8
★ 六路接收通道,三路发送通道(可选6收3发/4收2发/2收1发)
★ 总线传输速率为100Kbps、50Kbps、48Kbps和12.5Kbps跳线可选
★ 微处理器Intel 386EX局部处理429数据通信
★ 128K字节数据存储器,128K字节程序存储器
★ 16K字节双口存储器,用于386EX和PC机之间交换数据
★ 采用PCI总线
★ 板尺寸:185mm×100mm
★ 工作温度:0~60℃(商用)-20~70℃(工业级)-40~80℃(宽温)
★ 提供WINDOWS、Wince、Linux、VxWorks系统程序支持
3 硬件使用说明
3.1 硬件组成
HT-6302硬件组成框图如图一所示,主要包括386EX处理器、16K字节双口共享存储器、ARINC429控制器、收发器、128K字节程序存储器、128K字节数据存储器、时钟、译码控制电路等;HT-6302主要元件位置如图二所示(图中方焊盘为元件的第一管脚)。
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 4 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
PCI总线
双口存储器
中断控制
内部总线
CLOCK时钟
386EX处理器
程序存储器
数据存储器
ARINC429控制器
接收6发送驱动器3发送
ARINC429 通讯总线
图一、硬件组成框图
386EX用来实时监视并处理ARINC429信息;
16K字节双口存储器用来与主机交换命令和信息(数据);
128K字节程序存储器用来存放实时处理程序;
128K字节数据存储器用来存放实时处理程序的数据资源;
ARINC429控制器用来实现ARINC429接口控制;
时钟电路提供386EX和通信控制器所需的时钟;
中断控制电路实现中断功能。
图二、HT-6302板主要元件位置图
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 5 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
3.2 跳接针使用说明
3.2.1 ARINIC429收发速率选择
HT-6302可以通过配置E2来选择ARINC429总线传输速率。
表一 ARINC429传输速率选择表
总线传输速率
100Kbps
50Kbps
48Kbps
12.5Kbps
E2/1-2
OFF
OFF
ON
ON
E2/3-4
OFF
ON
OFF
ON
3.2.2 其它跳接针使用说明
HT-6302的其它跳接针为维修测试专用,用户禁止使用,以免破坏系统设置。
3.3 对外接口信号定义
说明:
a. 429通讯时可以只使用差分的两根信号线。但是如果将两台设备的地线连接会对通讯的可靠性有好处。
b. HT-6302与外接口采用插座DB25芯孔。
表二 接口信号定义
芯号 信号名称 说 明 芯号信号名称 说 明
1 R1+ 接收1+ 2 R1- 接收1-
3 R2+ 接收2+ 4 R2- 接收2-
5 R3+ 接收3+ 6 R3- 接收3-
7 R4+ 接收4+ 8 R4- 接收4-
9 S1+ 发送1+ 10 S1- 发送1-
11 S2+ 发送2+ 12 S2- 发送2-
13 未用 14 GND
15 S3+ 发送3+ 16 S3- 发送3-
17 R5+ 接收5+ 18 R5- 接收5-
19 R6+ 接收6+ 20 R6- 接收6-
21 未用 22 未用
23 未用 24 未用
25 未用 未用
4 软件使用说明
4.1 ARINC-429数据格式
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 6 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
4.1.1 ARINC-429 32位格式
ARINC-429 32位格式是指数据传输线上的格式。
ARINC 位 功能 说明
1-8 Label 地址标号
9-10 SDI 信息源/目标,表明该物理量从何处来
11 LSB 数据低位
12-27 Data 数据位。当用不满时,高位对齐,低位填零
28 MSB 数据高位
29 Sign 符号位。0表示正、北、东,1表示负、南、西
30-31 SSM 00:故障告警
01:非计算数据
10:功能测试
11:正常操作
32 Parity Status 校验位。0:奇校验,1:偶校验
4.1.2 ARINC-429编程格式
ARINC-429 编程格式是指对控制器芯片HS-3282访问的格式,也是对双口RAM访问的格式,在本说明书中称ARINC字,一个ARINC字为32位,共四个字节。
编程位 功能 ARINC 位
31 Sign 29
30 MSB 28
29-14 Data 27-12
13 LSB 11
12,11 SDI或Data 10,9
10,9 SSM Status 31,30
8 Parity Status 32
7-0 Label 1-8
说明:在某些设备中,符号位用SSM Status表示,00为正,11为负。31-11均为数据位(共21位,也有只使用低15位的),如下图所示:
位 31 …… 11 10,9 8 7 …… 0说明 (MSB) 数据 (LSB) 符号 校验 Label
使用本板之前,请跟与本板相接的设备方制定具体的协议。
4.2 双口RAM协议
HT-6302板上配置有16K字节的双口存储器,用于局部CPU与主机交换信息,实现六路接收、三路发送、自检等功能。双口存储器的地址为0000~3FFF,其约定如下:
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 7 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
序号
1
接收通道缓冲区
发送通道缓冲区
发送个数
名 称
偏移地址
字节数
1024
说 明
初始值
0
相对于主机R∕W
R
通道1
通道2
通道3
通道4
通道5
通道6
通道1单发
通道1循环发
通道2单发
通道2循环发
通道3单发
通道3循环发
0-3FF
400-7FF
800-BFF
C00-FFF
1000-13FF
1400-17FF
1800-1BFF
1C00-1FFF
2000-23FF
2400-27FF
2800-2BFF
2C00-2FFF
3000
3001
3002
3003
3004
3005
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
310A
310B
3200-32013202-32033204-32053206-32073208-3209320A-320B3FF0
每个ARINC字占四个字节,以先低后高方式存放,存放顺序与其LABLE大小相一致。
2
1024
每个ARINC占四个字节,以先低后高方式存放。
0 W
3
4
5
6
7
通道1单发
通道1循环发
通道2单发
通道2循环发
通道3单发
通道3循环发
接收通道通道1
产生中断通道2
的LABLE通道3
值
通道4
通道5
通道6
通道1
接收通道通道2
的中断标通道3
志
通道4
通道5
通道6
通道1
通道2
接收个数
通道3
通道4
通道5
通道6
命令控制字
1 最大为255。等于0时不发送。 0 W
1 接收的ARINC字的LABLE与其相等时向主机发一个中断并设中断标志。
0 W
1 为55H时表示是该通道向主机发了一个中断,主机响应中断查询该单元后要将该单元清0
0 R
2 实时记录接收通道接收的ARINC字的个数,每接收到一个ARINC字,该值增一
0 R
1 C0
C1
C2
C3
C4
C5
C6
C7
设置发送通道1的发送数据间隔
设置发送通道2的发送数据间隔
设置发送通道3的发送数据间隔
自检命令
设置接收控制命令
取消接收控制命令
设置校验命令
设置发送器速率命令
0 W
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 8 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
序号
名 称
偏移地址
字节数
说 明
初始值
相对于主机R∕W
C8 设置接收器速率命令
C9 设置数据长度命令
8 命令参数缓冲区 3FF1-3FF22 在写入各命令前,要先在该缓冲区中写入命令参数
9 自检标志 3FF3 1 自检标志,详见4.6的说明。
10 主机撤消中断 3FFC-3FFD2 以字方式读该单元使中断撤消
注:a. LABLE(地址标号)为每个ARINC字的低八位。
b. 双口存储器支持字和字节两种操作。
0
0
0
W
R
R
4.3 信号灯的分配和使用
4.3.1 关于信号灯的说明
HT-6302板采用双口存储器的方式实现与主机的数据交换。当板上的局部CPU和主机同时访问双口存储器时,板上的忙状态仲裁逻辑会保证让一方先访问存储器,另一方处于等待状态,直到先访问的一方访问结束时为止,这样就保证了每次读/写存储器的正确性。但是,要保证读写一组数据的完整性,仅有忙状态仲裁逻辑还不够。例如:一个ARINC字由32位组成,板上的存储器为16位或8位访问,局部CPU要分两次16位操作才能读写一个ARINC字;同样,主机也要分两次16位操作才能读写一个ARINC字。如果对同一个ARINC字在双口存储器两端同时发生读和写操作,就有可能造成读写的ARINC字高16位和低16位不是一个完整的值。信号灯正是为了保证一组数据的读写完整性而引入的。要访问存储器的一方先申请信号灯,申请到信号灯后,再对存储器进行读写操作,操作结束后释放信号灯。
信号灯可以使用双口存储器的某个单元来实现,但这种方式存在不可靠的因素。HT-6302板上的信号灯是由硬件实现的,可以保证使用信号灯的双方可靠地工作。
4.3.2 信号灯的分配
HT-6302板共有八个信号灯,以存储器方式访问,地址由段地址加偏移地址组成,段地址与双口存储器的段地址一致,偏移地址共占用16K字节空间,即4000~7FFF,但只使用其中的16字节单元,如下表所示:
名 称 地址 字节数 对应的存储区
信号灯1 4000-4001 2 接收通道1缓冲区0-3FF
信号灯2 4002-4003 2 接收通道2缓冲区400-7FF
信号灯3 4004-4005 2 接收通道3缓冲区800-BFF
信号灯4 4006-4007 2 接收通道4缓冲区C00-FFF
信号灯5 4008-4009 2 接收通道5缓冲区1000-13FF
信号灯6 400A-400B 2 接收通道6缓冲区1400-17FF
信号灯7 400C-400D 2 发送通道缓冲区1800-2FFF
信号灯8 400E-400F 2 备用
信号灯访问必须用字操作。
信号灯只是在访问对应存储区时使用,访问其它单元时不要使用。
局部CPU在上电时已将局部CPU端的八个信号灯释放;主机在初始化时应将八个信号灯释放一遍,以保证初始状态。在没有获得信号灯以前,连续申请信号灯等效于一次申请信号灯;在获得信号灯以后,连续释放信号灯等效于一次释放信号灯。申请和释放的操作见4.3.3。
4.3.3 信号灯的使用
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 9 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
对信号灯的操作有申请信号灯和释放信号灯两种。当要访问双口存储器时,需要申请信号灯;当访问完后,要释放信号灯。占用信号灯的程序要尽可能的短,最好只执行读写双口存储器的操作。
申请信号灯:往相应信号灯单元写入字0,然后读该地址,如读出为0,则申请上了信号灯;否则继续读该地址,直到为0时为止。
释放信号灯:往相应信号灯单元上写入字0FFFFH。
4.3.4 信号灯的例子
以读接收通道1缓冲区为例:
往4000H单元写入0
读出4000H单元的值
N
该值是否为0
Y
执行读接收通道数据缓冲区(0~
3FF)的程序
往4000H单元写0FFFFH
申请信号灯
释放信号灯
4.4 中断的编程说明
HT-6302对双口存储器的0x3ffc单元以字方式写0xffff产生主机中断,主机以字方式读0x3ffc单元撤销中断;主机对双口存储器的0x3ffe单元以字方式写0xffff可产生HT-6302中断,HT-6302以字方式读0x3ffe单元撤销中断。注意:0x3ffc和0x3ffe两个单元不可再做其他用途。主机中断接总线的哪一级中断由跳接针选择,见3.2.2的说明。
4.5 接收工作方式
4.5.1 接收方式的工作原理
HT-6302板的六路接收是不受控制一直打开的。也就是说,当任何一路接收通道有数据过来时,HT-6302板就接收该数据并存放在约定的接收缓冲区中,主机任何时候从双口存储器中读取的都是最新收到的数据。
数据的存放顺序是按照其ARINC字的LABLE值大小依次存放的,每个ARINC字都对应4个字节。例如,LABLE为03的ARINC字在接收通道2中存放在40C-40F中。主机可以通过LABLE值乘以4加上缓冲区首址来间接寻址,方便地实现读取所需要的数据。
4.5.2 接收中断及标志的产生
由于HT-6302板是无条件接收并不断刷新接收缓冲区的,因此约定了接收中断的产生条件,即4.2中所述的3100、3101、3102、3103、3104、3105单元。当接收到的ARINC字的LABLE值与上述单元的值相等时,就向主机发一个中断,同时在相应的中断标志上置55H。每个通道都有一个中断标志单元。当主机EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 10 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
使用中断方式时,通过查询中断标志单元可以确定是哪个通道产生的中断;主机也可以不使用中断方式,直接查询相应的中断标志单元。
由于接收事件是随时发生的,有时一个中断可能对应几个通道的接收,因此,主机响应中断后,应将六个中断标志单元全部查询一遍。
中断的撤消由主机以字方式读一次3FFC单元来执行。每次进入中断后,主机必须执行撤消中断的操作,同时将对应的中断标志单元清零。
4.5.3 接收计数
接收个数(3200~320B)用于记录每个接收通道的接收次数。对于一个特定的通道,HT-6302板只要收到一个数据,就将对应计数单元增一。主机可以通过读取该单元的值判断接收的数据是否被更新。
4.5.4 其它注意事项
由于HT-6302板是无条件接收的,所以主机无法辨别出那些ARINC字是新发来的,那些ARINC字是以前发的。如果主机需要辨别出哪些数据被更新,可以在每次接收之后将相应的接收通道缓冲区清零来处理。
4.6 发送工作方式
4.6.1 发送数据间隔
发送数据间隔指第一个ARNIC字到第二个ARNIC字的间隔时间。如下图所示:
ARNIC字1
字间隔
ARNIC字2
T
数据间隔
数据间隔由用户编程控制,其方法为:
先在3FF1-3FF2单元写入要修改的数据间隔值,单位为μs,然后再在3FF0单元写控制命令字C0(C1、C2),则可以修改发送通道的发送数据间隔。
例如,要把发送通道2的数据间隔改为1250μs,则先在3FF1-3FF2单元写E2 04,然后在3FF0单元写C1,就完成了发送通道2的数据间隔的设置。主机执行完C1命令后,将3FF0单元清零。
上电时,局部CPU将三个发送通道的数据间隔编程为1250μs。
4.6.2 发送帧间隔
按照ARINC429的总线协议,字间隔最小为四个码位。通讯速率为100K、48K、12.5K或6K时,对应最小字间隔和最小数据间隔如下表所示:
通讯速率 最小字间隔 最小数据间隔
100K 40μs 360μs
48K 84μs 750μs
12.5K 320μs 2880μs
6K 672μs 6000μs
一旦编程的数据间隔小于最小数据间隔制,将导致控制器芯片工作不正常。这时,即便将时间再编程为正常值,也不能恢复控制器芯片的正常工作。使控制器芯片正常工作的方法是硬件复位或关电后重新加电。
一组ARNIC字为一帧。帧间隔指一帧数据的间隔时间。帧间隔因为发送方式的不同而不同:主机控制发送方式(以下简称单发)时,帧间隔由主机控制。注意,主机控制的帧间隔时间要大于数据间隔乘以数EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 11 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
据总数的积,否则会导致非正常发送;自动循环发送方式时,帧间隔与数据间隔和发送数据总数有关。它们的关系为:
单发方式:
帧间隔>数据间隔*数据总数
自动循环发送方式:
帧间隔=数据间隔*数据总数
4.6.3单发方式发送控制
单发方式由发送个数(3000,3002,3004)和发送缓冲区(1800-1BFF,2000-23FF,2800-2BFF)共同控制。发送个数决定发送的一帧总数,不能为0;发送缓冲区确定发送的数据,主机在每发送一帧数据前,应先检查相应单发通道的发送个数缓冲区是否为0,如不为0,说明上一帧数据没有发完,则应等待,直到其值为0时再发下一帧数据。局部CPU执行完一帧数据的发送后,将发送个数清零。
4.6.4 自动循环方式发送控制
自动循环发送方式由发送个数(3001,3003,3005)和发送缓冲区(1C00-1FFF,2400-27FF,2C00-2FFF)共同控制。发送个数决定发送的一帧总数,不能为0;发送缓冲区确定发送的数据,局部CPU按照发送个数和帧间隔自动循环发送。当主机将发送个数写为0时,停止发送。
单发方式比自动循环发送方式优先级高,当一个通道的两种方式都存在时,只执行单发方式。
4.6.5 发送控制实例
实例1:单发方式
以发送通道1为例,先查询发送个数3000单元,当其值为0时,在发送通道缓冲区1800-1817写下列数据:
BF 00 00 10 D8 06 00 20 D9 00 00 30 B6 06 00 40 B7 00 00 50 B4 06 00 60
再在发送个数3000单元写06,则发送通道1以数据间隔1250μs(缺省值)发送一次LABLE为BF,D8,D9,B6,B7,B4的六个数据。
写发送通道缓冲区1800-1817时,要按4.3的说明使用信号灯。
实例2:自动循环发送方式
以发送通道1为例,在发送通道缓冲区1C00-1C17写下列数据:
BF 00 00 10 D8 06 00 20 D9 00 00 30 B6 06 00 40 B7 00 00 50 B4 06 00 60
再在发送个数3001单元写06,则发送通道1以数据间隔1250μs(缺省值)、帧间隔7.5ms循环发送LABLE为BF,D8,D9,B6,B7,B4的六个数据。如下图所示:
数据1 数据2 数据3 数据4 数据5 数据6 数据1 数据2 数据3 数据4 数据5 数据6
······
第一帧7.5ms 第二帧7.5ms
4.7 自检工作方式
HT-6302板可以通过两种方式进行自检,一种是在上电初始化时,自动执行一次自检;另一种是主机在3FF0单元处写入自检命令字C3,启动一次自检。局部CPU执行自检命令时,将对六个接收通道进行检测,如果全部接收通道自检正确,就将HT-6302板把“429OK”信号置上高电平;只要有一个接收通道检测不正常,就将“429OK”信号置为低电平。自检结果还同时写入自检标志3FF3单元。
自检标志共八位,定义如下:
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 12 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
位0:为0时表示第一个接收通道自检正确;为1时表示错误。
位1:为0时表示第二个接收通道自检正确;为1时表示错误。
位2:为0时表示第三个接收通道自检正确;为1时表示错误。
位3:为0时表示第四个接收通道自检正确;为1时表示错误。
位4:为0时表示第五个接收通道自检正确;为1时表示错误。
位5:为0时表示第六个接收通道自检正确;为1时表示错误。
位6~位7:没有定义
主机启动自检后,应延时20μs再读自检标志单元。
4.8控制命令
4.8.1 设置接收控制命令
C4命令是设置接收控制命令。在执行该命令前,应先在3FF1和3FF2单元处填上命令参数,3FF1单元处填写的是接收通道号,范围从1到6; 3FF2单元处填写的是接收控制码,它只有最后两位有效。当执行完命令后,每收到一个ARINC字,就判断所收到ARINC字的第10、9两位与接收控制码的第1、0两位是否分别相等,若相等,则接收该ARINC字,若有不等的,则不收该ARINC字。
4.8.2 取消接收控制命令
C5命令是取消接收控制命令。它是与C4命令相对应的,当一个接收通道执行了C4命令后,可用C5命令来取消该通道上的C4命令。在执行C5命令前,应先在3FF1单元处填上接收通道号,范围从1到6。
4.8.3 设置校验位命令
C6命令是设置校验位命令。在执行该命令前,应先在3FF1和3FF2单元处填上命令参数,3FF1单元处填写的是3282芯片号,范围从1到3; 3FF2单元处填写值为1或0,1代表偶校验,0代表奇校验。初始值为奇校验。
4.8.4 设置发送器速率命令
C7命令是设置发送器速率命令。在执行该命令前,应先在3FF1和3FF2单元处填上命令参数,3FF1单元处填写的是3282芯片号,范围从1到3; 3FF2单元处填写值为1或0,为0时发送器的速率为时钟速率的十分之一,为1时发送器的速率为时钟速率的八十分之一。初始值为时钟速率的十分之一。
4.8.5 设置接收器速率命令
C8命令是设置接收器速率命令。在执行该命令前,应先在3FF1和3FF2单元处填上命令参数,3FF1单元处填写的是3282芯片号,范围从1到3; 3FF2单元处填写值为1或0,为1时接收器的速率为时钟速率的十分之一,为1时接收器的速率为时钟速率的八十分之一。初始值为时钟速率的十分之一。
当改变接收或发送速率时,应根据改变速率的快慢相应的改变数据间隔。如:HT-6302刚一上电时的初始值是发送速率为100Kbps,数据间隔为1.25ms,如果把速率变为12.5Kbps,那么速率就变慢了,数据间隔也要相应增加,否则就会发生发送错误。
4.8.6 设置数据长度命令
C9命令是设置校验位命令。在执行该命令前,应先在3FF1和3FF2单元处填上命令参数,3FF1单元处填写的是3282芯片号,范围从1到3; 3FF2单元处填写值为1或0,为1时一个ARINC字的长度为25位,为0一个ARINC字的长度为32位。初始值为32位。
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 13 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
5 编程说明
5.1 WINDOWS程序说明
5.1.1动态链接库说明
HT-6302板卡在WINDOW下的动态链接库文件为、,在其中包含了以下14个函数。
a. 发送函数
void Send_6302(HANDLE hndFile,UCHAR Channel,ULONG *SendBuffer,UCHAR Number,UCHAR SendStyle)
功能说明:向双口存储器中的一个发送通道循环发或单发一帧数据。
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
Channel:发送通道号,取值范围为1、2、3。
Sendbuffer:发送数据缓冲区指针。
Number:发送ARINC429字个数。
Sendtyle:发送类型。0为单发,1为循环发。
返回值:无
例:Send_6302(hndFile,1,sendbuf,16,1)
说明:向发送通道1循环发16个数据,发送数据缓冲区指针为sendbuf。
b. 接收函数
void Receive_6302(HANDLE hndFile,UCHAR Channel,ULONG *ReceBuffer,UCHAR ReceNum)
功能说明:从特定接收通道读出LABLE值00到recenum的数据。
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
Channel:接收通道号,取值范围为1~6。
Recebuf:接收数据缓冲区指针。
Recenum:最后读取的LABLE值。
返回值:无
例:Receive_6302(hndFile,1,recebuf,10)
说明:从接收通道1读取LABLE值00到0A共11个数据,接收数据缓冲区指针为recebuf。
c. 设中断标志函数
void SetINTSign_6302(HANDLE hndFile,UCHAR *INTWord);
功能:设置接收时向PC机发中断的LABLE值。
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
INTWord:指向向PC机发中断的LABLE值缓冲区的指针。
这个缓冲区中依次存放了六个接收通道向PC机发中断的LABLE值。
返回值:无
例:SetINTSign_6302 (hndFile,intwordptr)
说明:设置接收时向PC机发中断的LABLE值,设置的LABLE值缓冲区指针为intwordptr。
d. 写命令字函数
UCHAR SetCommandWord_6302(HANDLE hndFile,UCHAR cWord,USHORT parameter,UCHAR cmd1,UCHAR cmd2)
功 能:执行命令字
入口参数:
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 14 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
cWord:命令字:0表示C0命令,1表示C1命令,2表示C2命令,3表示C3命令, 4表示C4命令, 5表示C5命令, 6表示C6命令, 7表示C7命令, 8表示C8命令, 9表示C9命令。
parameter、cmd1、cmd2:命令参数,与命令字有关。详细定义如下:
cWord为0、1、2:parameter表示要设置的时间,cmd1和cmd2没有意义。
cWord为3:命令参数没有意义。
cWord为4:cmd1表示接收通道号,cmd2表示控制字符,parameter没有意义。
cWord为5:cmd1表示接收通道号,cmd2和parameter没有意义。
cWord为6:cmd1表示3282芯片号,cmd2为0时表示奇校验,为1时表示偶校验,parameter没有意义。
cWord为7:cmd1表示3282芯片号,cmd2为0时表示发送速率为时钟的十分之一,为1时表示发送速率为时钟的八十分之一,parameter没有意义。
cWord为8:cmd1表示3282芯片号,cmd2为0时表示接收速率为时钟的十分之一,为1时表示接收速率为时钟的八十分之一,parameter没有意义。
cWord为9:cmd1表示3282芯片号,cmd2为0时表示数据长度为32位,为1时表示数据长度为25位,parameter没有意义。
返回值:对C3命令,它表示自检标志。对其它命令没有意义。
调用例子1:(UCHAR)selftestsign=CommandWord(hndFile,0,1200,0,0,0)
说明:设置定时器0的时间为1200μs
调用例子2:(UCHAR)selftestsign=CommandWord(hndFile,3,0,0,0)
说明:执行自检命令,在selftestsign中存储自检状态字。
调用例子3:(UCHAR)selftestsign=CommandWord(hndFile,4,0,1,2)
说明:接收通道1只接收第10、9两位为1、0的ARINC字。
调用例子4:(UCHAR)selftestsign=CommandWord(hndFile,5,0,1,0)
说明:取消上面执行的命令4。
调用例子5:(UCHAR)selftestsign=CommandWord(hndFile,6,0,1,1)
说明:第一片3282芯片传输数据时为偶校验。。
调用例子6:(UCHAR)selftestsign=CommandWord(hndFile,7,0,1,1)
说明:设置发送速率为CLK/80bps。
调用例子7:(UCHAR)selftestsign=CommandWord(hndFile,8,0,1,1)
说明:设置接收速率为CLK/80bps。
调用例子8:(UCHAR)selftestsign=CommandWord(hndFile,9,0,1,1)
说明:设置数据长度为25位。
e. 读中断标志函数
UCHAR ReadINTSign_6302(HANDLE hndFile,UCHAR Channel)
功能:读中断标志并把中断标志清零
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
Channle:接收通道号, 取值范围为1~6。
返回值:返回中断标志。
例:(UCHAR)intsign=ReadIntsign_6302(hndFile,1)
说明:读出接收通道1的中断标志,在读出后把中断标志单元清零。
f. 读接收计数函数
USHORT ReadReceiveNum_6302(HANDLE hndFile,UCHAR Channel)
功能:读接收计数
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 15 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
Channel:接收通道号, 取值范围为1~6。
返回值:返回接收计数值。
例:(USHORT)calculate= ReadReceiveNum_6302(hndFile,1)
说明:读出接收通道1的接收计数值。
g. 读429板卡标志函数
USHORT Init429_6302 (HANDLE hndFile)
功能:读出429板的标志,如为0x429则板子正常,否则板卡工作不正常。
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
返回值:429板的标志。
例:(USHORT) t429sign= Init429_6302 (hndFile)
说明:读出429板的标志,看是否为0x429,如是则板卡正常,否则不正常。
h. 发送停止函数
void StopSend_6302(HANDLE hndFile,UCHAR Channel,UCHAR SendStyle)
功能:停止发送。
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
Channel:发送通道号,取值范围1~3。
Sendtyle:发送类型。0为单发,1为循环发。
返回值:无
例:StopSend_6302(hndFile,1,1)
说明:停止发送通道1循环发送数据。
i. 转换429格式函数
void Converse429Format_6302(ULONG *buffer,UCHAR contype)
功能:429编程格式与总线格式转换。
参数说明:
buffer:指向一个ARINC429字的缓冲区。
congtype:转换方式。为0时从编程格式转换到总线格式,为1时从总线格式转换到编程格式。
返回值:无。
例:Converse429Format_6302(buffer,0)
说明:把buffer中的数据从编程格式转换到总线格式。
j. 清除接收缓冲区函数
void Clear429Receive_6302(HANDLE hndFile,UCHAR Channel)
功能:清接收缓冲区。
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
Channel:接收通道号, 取值范围1~6。
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 16 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
返回值:无。
例:Clear429Receive_6302(hndFile,1);
说明:清除接收通道1缓冲区。
k. 请求信号灯函数
void RequestSem_6302(HANDLE hndFile,USHORT SemNum)
功能:请求信号灯。
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得
SemNum:信号灯号。
返回值:无。
例:RequestSem_6302(hndFile,0)
说明:请求0号信号灯。
l. 释放信号灯函数
void ReleaseSem_6302(HANDLE hndFile,USHORT SemNum)
功能:释放信号灯。
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
SemNum:信号灯号。
返回值:无。
例:ReleaseSem_6302 (hndFile,0)
说明:释放0号信号灯。
m. 取得句柄
HANDLE OpenDevice_6302(DWORD instance)
功 能:取得指向429板卡的句柄。执行所有函数前必须首先取得该句柄。
参数说明:
instance:板卡序号,0表示第一块,以此类推。
返 回 值:指向429板卡的句柄。
例:HANDLE hndFile=OpenDevice_6302(0)
说明:取得429板卡句柄hndFile。
n. 释放句柄
void CloseDevice_6302(HANDLE hndFile)
功 能:释放指向429板卡的句柄。退出程序前应释放句柄。
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
返 回 值:无。
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 17 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
例:CloseDevice_6302(hndFile)
说明:释放429板卡句柄hndFile。
5.1.2 演示程序说明
5.1.2.1 演示程序安装
运行配套光盘,选择相应板卡的演示程序的安装即可。
5.1.2.2 演示程序使用说明
演示程序的执行文件为,程序一共分为四个部分:设置、发送、接收和自测。
1) 设置
设置部分的界面为:
2) 发送
发送部分的界面为:
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 18 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
在发送界面中,可以修改发送通道、发送方式、发送间隔,发送的数据内容可以通过填表填入,也可以通过载入数据的方法载入,表中填写的数据也可以保存下来。
3) 接收
接收部分的界面的为:
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 19 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
在接收界面中,可以选择接收通道和接收间隔,可以周期性的查询接收缓冲区中的内容。
4) 自检
自检部分的界面为:
把板卡的第1发送通道与1、2接收通道,第2发送通道与3、4接收通道,第3发送通道与
5、6接收通道相短接,然后自检测试,程序会自动的判断收发是否正常,并把错误计数显示出来。
5.1.3 驱动程序的安装
运行配套光盘,选择相应板卡的驱动安装即可。
5.2 WINCE下程序说明
5.2.1 驱动程序的安装
WINCE下的驱动程序与Windows2000和Windows XP系统下的驱动程序不同,它是以用户态下的动态链接库的形式存在的,通过WINCE里的CEC文件工具可以把驱动打包变成第三方组件的形式供系统加载。
驱动安装按照以下步骤:
1) 首先安装Platform Builder,安装时最好只改变它的盘符而不要改变它的相对路径,因为系统生成时有时按默认路径拷贝文件。
2) 安装完成后在盘符根目录下会有WINCE420(WINCE500)目录,如:d:WINCE420(WINCE500)。将光盘中WinCE目录下的Driver-HT6302目录拷贝到WINCE420(WINCE500)PUBLIC目录下。
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 20 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
3) 执行文件,这里将向组件文件夹里添加文件,并将组件导入系统的Catalog Features中,其中完成了注册表修改的操作,如果从Catalog列表Third PartyDevice Drivers中没有看到HT-6302 Driver,刷新一下列表显示即可。
4) 建立目标平台工程后,将Catalog中显示的HT-6302 Driver加入平台工程,执行sysgen编译生成镜像文件即可。
5.2.2 动态链接库说明
HT-6302板卡在WINDOW CE下的动态链接库文件为、,在其中包含了以下14个函数。
a. 发送函数
__declspec(dllexport) void Send_6302(HANDLE hndFile,UCHAR Channel,ULONG *SendBuffer,UCHAR
Number,UCHAR SendStyle)
功能说明:向双口存储器中的一个发送通道循环发或单发一帧数据。
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
Channel:发送通道号,取值范围为1、2、3。
Sendbuffer:发送数据缓冲区指针。
Number:发送ARINC429字个数。
Sendtyle:发送类型。0为单发,1为循环发。
返回值:无
例:Send_6302(hndFile,1,sendbuf,16,1)
说明:向发送通道1循环发16个数据,发送数据缓冲区指针为sendbuf。
b. 接收函数
__declspec(dllexport) void Receive_6302(HANDLE hndFile,UCHAR Channel,ULONG *ReceBuffer, WORD
offlbl,UCHAR ReceNum)
功能说明:从特定接收通道读出LABLE值00到recenum的数据。
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
Channel:接收通道号,取值范围为1~6。
Recebuf:接收数据缓冲区指针。
Offlbl: 开始读取数据的lable值。
Recenum:读取ARINC字的个数。
返回值:无
例:Receive_6302(hndFile,1,recebuf,0,10)
说明:从接收通道1读取LABLE值00到0A共11个数据,接收数据缓冲区指针为recebuf。
c. 设中断标志函数
__declspec(dllexport) void SetINTSign_6302(HANDLE hndFile,UCHAR *INTWord);
功能:设置接收时向PC机发中断的LABLE值。
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
INTWord:指向向PC机发中断的LABLE值缓冲区的指针。
这个缓冲区中依次存放了六个接收通道向PC机发中断的LABLE值。
返回值:无
例:SetINTSign_6302 (hndFile,intwordptr)
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 21 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
说明:设置接收时向PC机发中断的LABLE值,设置的LABLE值缓冲区指针为intwordptr。
d. 写命令字函数
__declspec(dllexport) UCHAR SetCommandWord_6302(HANDLE hndFile,UCHAR cWord,USHORT
parameter,UCHAR cmd1,UCHAR cmd2)
功 能:执行命令字
入口参数:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
cWord:命令字:0表示C0命令,1表示C1命令,2表示C2命令,3表示C3命令, 4表示C4命令, 5表示C5命令, 6表示C6命令, 7表示C7命令, 8表示C8命令, 9表示C9命令。
parameter、cmd1、cmd2:命令参数,与命令字有关。详细定义如下:
cWord为0、1、2:parameter表示要设置的时间,cmd1和cmd2没有意义。
cWord为3:命令参数没有意义。
cWord为4:cmd1表示接收通道号,cmd2表示控制字符,parameter没有意义。
cWord为5:cmd1表示接收通道号,cmd2和parameter没有意义。
cWord为6:cmd1表示3282芯片号,cmd2为0时表示奇校验,为1时表示偶校验,parameter没有意义。
cWord为7:cmd1表示3282芯片号,cmd2为0时表示发送速率为时钟的十分之一,为1时表示发送速率为时钟的八十分之一,parameter没有意义。
cWord为8:cmd1表示3282芯片号,cmd2为0时表示接收速率为时钟的十分之一,为1时表示接收速率为时钟的八十分之一,parameter没有意义。
cWord为9:cmd1表示3282芯片号,cmd2为0时表示数据长度为32位,为1时表示数据长度为25位,parameter没有意义。
返回值:对C3命令,它表示自检标志。对其它命令没有意义。
调用例子1:(UCHAR)selftestsign=CommandWord(hndFile,0,1200,0,0,0)
说明:设置定时器0的时间为1200μs
调用例子2:(UCHAR)selftestsign=CommandWord(hndFile,3,0,0,0)
说明:执行自检命令,在selftestsign中存储自检状态字。
调用例子3:(UCHAR)selftestsign=CommandWord(hndFile,4,0,1,2)
说明:接收通道1只接收第10、9两位为1、0的ARINC字。
调用例子4:(UCHAR)selftestsign=CommandWord(hndFile,5,0,1,0)
说明:取消上面执行的命令4。
调用例子5:(UCHAR)selftestsign=CommandWord(hndFile,6,0,1,1)
说明:第一片3282芯片传输数据时为偶校验。。
调用例子6:(UCHAR)selftestsign=CommandWord(hndFile,7,0,1,1)
说明:设置发送速率为CLK/80bps。
调用例子7:(UCHAR)selftestsign=CommandWord(hndFile,8,0,1,1)
说明:设置接收速率为CLK/80bps。
调用例子8:(UCHAR)selftestsign=CommandWord(hndFile,9,0,1,1)
说明:设置数据长度为25位。
e. 读中断标志函数
__declspec(dllexport) UCHAR ReadINTSign_6302(HANDLE hndFile,UCHAR Channel)
功能:读中断标志并把中断标志清零
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
Channle:接收通道号, 取值范围为1~6。
返回值:返回中断标志。
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 22 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
例:(UCHAR)intsign=ReadIntsign_6302(hndFile,1)
说明:读出接收通道1的中断标志,在读出后把中断标志单元清零。
f. 读接收计数函数
__declspec(dllexport) USHORT ReadReceiveNum_6302(HANDLE hndFile,UCHAR Channel)
功能:读接收计数
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
Channel:接收通道号, 取值范围为1~6。
返回值:返回接收计数值。
例:(USHORT)calculate= ReadReceiveNum_6302(hndFile,1)
说明:读出接收通道1的接收计数值。
g. 读429板卡标志函数
__declspec(dllexport) USHORT Init429_6302 (HANDLE hndFile)
功能:读出429板的标志,如为0x429则板子正常,否则板卡工作不正常。
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
返回值:429板的标志。
例:(USHORT) t429sign= Init429_6302 (hndFile)
说明:读出429板的标志,看是否为0x429,如是则板卡正常,否则不正常。
h. 发送停止函数
__declspec(dllexport) void StopSend_6302(HANDLE hndFile,UCHAR Channel,UCHAR SendStyle)
功能:停止发送。
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
Channel:发送通道号,取值范围1~3。
Sendtyle:发送类型。0为单发,1为循环发。
返回值:无
例:StopSend_6302(hndFile,1,1)
说明:停止发送通道1循环发送数据。
i. 转换429格式函数
__declspec(dllexport) void Converse429Format_6302(ULONG *buffer,UCHAR contype)
功能:429编程格式与总线格式转换。
参数说明:
buffer:指向一个ARINC429字的缓冲区。
congtype:转换方式。为0时从编程格式转换到总线格式,为1时从总线格式转换到编程格式。
返回值:无。
例:Converse429Format_6302(buffer,0)
说明:把buffer中的数据从编程格式转换到总线格式。
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 23 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
j. 清除接收缓冲区函数
__declspec(dllexport) void Clear429Receive_6302(HANDLE hndFile,UCHAR Channel)
功能:清接收缓冲区。
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
Channel:接收通道号, 取值范围1~6。
返回值:无。
例:Clear429Receive_6302(hndFile,1);
说明:清除接收通道1缓冲区。
k. 请求信号灯函数
__declspec(dllexport) void RequestSem_6302(HANDLE hndFile,USHORT SemNum)
功能:请求信号灯。
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得
SemNum:信号灯号。
返回值:无。
例:RequestSem_6302(hndFile,0)
说明:请求0号信号灯。
l. 释放信号灯函数
__declspec(dllexport) void ReleaseSem_6302(HANDLE hndFile,USHORT SemNum)
功能:释放信号灯。
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
SemNum:信号灯号。
返回值:无。
例:ReleaseSem_6302 (hndFile,0)
说明:释放0号信号灯。
m. 取得句柄
__declspec(dllexport) HANDLE OpenDevice_6302(DWORD instance)
功 能:取得指向429板卡的句柄。执行所有函数前必须首先取得该句柄。
参数说明:
instance:板卡序号,0表示第一块,以此类推。
返 回 值:指向429板卡的句柄。
例:HANDLE hndFile=OpenDevice_6302(0)
说明:取得429板卡句柄hndFile。
n. 释放句柄
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 24 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
__declspec(dllexport) void CloseDevice_6302(HANDLE hndFile)
功 能:释放指向429板卡的句柄。退出程序前应释放句柄。
参数说明:
hndFile:板卡句柄,由OpenDevice_6302()函数取得。
返 回 值:无。
例:CloseDevice_6302(hndFile)
说明:释放429板卡句柄hndFile。
5.2.3 演示程序说明
演示程序的名称为PCI_429_,演示程序不需要安装,只要将其存放在WinCE可以访问到的存储介质上,并且与动态链接库存放在相同目录下,双击即可运行。点击菜单栏的
5.3 Linux下程序说明
5.3.1 驱动程序的安装
驱动程序的安装需要以下几个步骤,某些步骤需要超级用户的权限。
1)驱动程序的编译和驱动文件的安装
如果提供给用户的是驱动程的源代码,则首先需要驱动的编译。进入驱动程序所在的目录执行以下命令:
make clean
make
通过编译或其它途径获得驱动驱动目标文件后,便可以通过以下命令进行驱动文件的安装:
make install
2)创建设备文件
还是在驱动程序目录中,执行以下命令:
./
设备文件的默认主设备号是200。如果想使用其它的主设备号,则需要执行如下带参数的命令:
./ –m MAJOR_NUM
此处‘MAJOR_NUM‘代表用户指定的主设备号。
3)驱动模块的加载和卸载
在驱动可用前需要将驱动模块加载到内核,可以通过以下命令实现:
insmod arinc429
如果用户需要指定主设备号,则需要在命令中使用选项major= MAJOR_NUM,‘MAJOR_NUM‘是用户指定的主设备号,注意此设备号应和上面给设备文件指定的设备号一致。例如:
insmod arinc429 major=150
如果用户使用的是ISA接口的板卡,则还应该使用选项指定板卡的主机双口存贮器和信号灯MemoryEMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 25 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
基地址,选项格式为:ioaddr=ADDR1,ADDR2[[,ADDR1,ADDR2]…],两个地址为一组,最多4组。例如:
insmod arinc429 major=150 ioaddr=0xd0000,0xd4000
则表示指定的基地址为0xd0000和0xd4000.
卸载驱动程序则相对简单,执行如下命令即可:
rmmod arinc429
4)驱动文件的反安装
如果需要从系统文件目录中卸载驱动文件,则需进入驱动程序所在的原始目录,执行如下命令:
make uninstall
强烈建议!在删除驱动后,同时删除所建立的设备文件,对这些遗留设备文件的不当使用有可能会伤害其它使用相同主设备号的设备。
5.3.2函数库的安装
在函数库的安装过程中某些步骤需要超级用户的权限。
1)函数库的编译和库文件的安装
如果用户得到的是函数库的源文件,则首先需要库的编译。进入函数库所在的目录,执行以下命令:
make clean
make
获得函数库目标文件后,接下来进行函数库文件的安装,执行以下命令:
make install
2)函数库的反安装
在原始函数库目录中执行以下命令,从系统中移除函数库文件:
make uninstall
5.3.3应用程序与函数库的链接
如果应用程序中使用到函数库中的函数,则需要在应用程序编译链接时使用命令选项-l指定需链接的库429ctl,例如:
gcc -Wall -g –l429ctl myapp.c -o myapp
此命令执行后将把应用程序myapp.c和库429ctl链接起来。
5.3.4库函数说明
a. extern int OpenDevice_429( int devIndex )
功 能
打开设备,获得进一步操作的设备句柄。
@devIndex : 设备实例索引号(0-3)
参数说明
返回值
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 26 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
b. extern int CloseDevice_429( int devIndex )
功 能
c. extern int Init_429( int devIndex )
功 能
d. extern int RequestSem_429( int devIndex,unsigned short SemNum)
功 能
e. extern int ReleaseSem_429( int devIndex, unsigned short SemNum )
功 能
释放请求的双口存储器访问信号量。
@devIndex
@SemNum
: 设备实例索引号(0-3)
: 信号量索引号
参数说明
请求访问双口存储器的信号量。
@devIndex
@SemNum
1
0
: 设备实例索引号(0-3)
: 信号量索引号
0到5对应接收通道1到6;
6 对应发送通道;
: 成功
: 失败
参数说明
检查设备是否是所支持的设备,然后对其初始化。
@devIndex
1
0
: 设备实例索引号(0-3)
: 成功
: 失败
参数说明
返回值
关闭设备,释放所获的设备句柄。
@devIndex
1
0
: 设备实例索引号(0-3)
: 成功
: 失败
参数说明
返回值
1
0
: 成功
: 失败
返回值
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 27 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
f. extern int Clear429Receive_429( int devIndex, unsigned char Channel)
功 能
g. extern int SetINTSign_429( int devIndex, unsigned char *INTWord)
功 能
h. extern unsigned char ReadINTSign_429( int devIndex, unsigned char Channel )
功 能
i. extern unsigned char SetCommandWord_429( int devIndex,
unsigned char cWord,
unsigned short parameter,
unsigned char cmd1,
读中断标志并把中断标志清零。
@devIndex
@Channel
中断标志
: 设备实例索引号(0-3)
: 接收通道号(1-6)
参数说明
设置产生主机中断的arinc字的LABLE值。
@devIndex
@INTWord
1
0
: 设备实例索引号(0-3)
: 指向需设置的LABLE的缓冲区
: 成功
: 失败
参数说明
清空板内接收缓冲区。
@devIndex
@Channel
1
0
: 设备实例索引号(0-3)
: 通道号(1-6)
: 成功
: 失败
参数说明
1
0
0到5对应接收通道1到6;
6对应发送通道
返回值
: 成功
: 失败
返回值
返回值
返回值
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 28 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
unsigned char cmd2 )
功 能
j. extern int Send_429( int devIndex, unsigned char Channel,
unsigned long *SendBuffer, unsigned char Number,
unsigned char SendStyle )
功 能
k. extern int StopSend_429( int devIndex, unsigned char Channel,
unsigned char SendStyle)
功 能
停止发送。
@devIndex
@Channel
: 设备实例索引号(0-3)
: 发送通道号,1到3对应通道1到3
参数说明
发送数据。
@devIndex
@Channel
@Number
: 设备实例索引号(0-3)
: 发送通道号 (1-3)
: 要发送的ARINC字个数
参数说明
执行命令字。
@devIndex
@cWord
@cmd1
@cmd2
: 设备实例索引号(0-3)
: 命令字(0到9对应命令字C0到C9)
: 参见Windows库函数说明
: 参见Windows库函数说明
参数说明
@parameter : 参见Windows库函数说明
返回值
对C3命令为自检标志;
对其它命令没有意义。
@SendBuffer : 发送缓冲区
@SendStyle : 发送方式( 0:单次发,1:循环发)
1
0
: 成功
: 失败
返回值
@SendStyle : 发送方式。(0:单次发,1:循环发)
1
0
: 成功
: 失败
返回值
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 29 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
l. extern unsigned short ReadReceiveNum_429( int devIndex, unsigned char Channel)
功 能
m. extern int Receive_429( int devIndex, unsigned char Channel,
unsigned char label, unsigned long *ReceBuffer, unsigned char
ReceNum )
功 能
数据接收函数。
@devIndex
@Channel
@ReceNum
1
0
: 设备实例索引号(0-3)
: 通道号(1-6)
: 最后读取的LABLE值
: 成功
: 失败
参数说明
读接收计数。
@devIndex
@Channel
: 设备实例索引号(0-3)
: 接收通道号(1-6)
参数说明
返回值
通道接收计数值
@ReceBuffer : 接收缓冲区指针
返回值
5.4 VxWorks下程序说明
5.4.1 驱动程序的安装
VxWorks下的驱动安装需要按照下列步骤进行:
1) 在Tornado环境中新建工程,并将光盘中带的Drv6302.o文件拷贝到新建工程的目录下。
2) 点击新建工程空间中的Builds选项卡,双击default项,选择Macros选项卡,然后从该选项卡的Macros下拉列表中选择EXTRA_MODULES项,在其Value域中填入$(PRJ_DIR)/Drv6302.o,点击左下角的
3) 编译生成VxWorks镜像文件,驱动安装完成。
5.4.2 驱动函数说明
VxWorks下的驱动函数全部采用标准系统调用的方式实现,用户在编程时可以采用open、close、read、write、ioctl等系统调用实现对设备的控制,下面对各个系统调用在本卡驱动中实现的功能进行说明。
a. 驱动初始化函数:
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 30 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
函数定义:STATUS HT6302Drv(void);
功 能: 初始化驱动程序数据结构,安装驱动程序处理函数,读板卡标志,并创建设备节点。
参数说明:板卡基地址值,根据板卡实际跳线设置
中断号,根据板卡跳线设置,该参数设为0时表示不采用中断方式
返 回 值:OK 初始化成功,成功后将在系统中创建设备节点,节点名称定义如下:
/HT6302/0 接收通道1
/HT6302/1 接收通道2
/HT6302/2 接收通道3
/HT6302/3 接收通道4
/HT6302/4 接收通道5
/HT6302/5 接收通道6
/HT6302/6 发送通道1
/HT6302/7 发送通道2
/HT6302/8 发送通道3
ERROR 初始化失败
例 子:HT6302Drv();
b. 打开设备函数
c. 关闭设备函数
函数定义:int open(const char * name, int flags, int mode);
功 能:获得设备句柄
参数说明:设备节点名称字符串
打开方式
操作权限
返 回 值:正确时返回设备句柄的整型值;
错误时返回ERROR。
例 子:fd1=open("/HT6302/6",O_RDWR,0644) //打开发送通道1
函数定义:STATUS close(int fd);
功 能:关闭设备
参数说明:设备节点句柄
返 回 值:正确时返回设备句柄的整型值;
错误时返回ERROR,表示该设备节点未打开。
例 子:close(fd1); //关闭打开的设备节点
d. 读操作函数
函数定义:int read(int fd, char * buffer, size_t maxbytes);
功 能:从接收设备读取数据
参数说明:已打开的设备节点句柄
接收缓冲区,该缓冲区的数据结构如下:
typedef struct
{
char offlbl; /* lable to receive from*/
ULONG Data[256]; /* data buffer for receiving */
}ARINCRcvMsg;
该数据结构在EXPORT_6302.h中定义。
Maxbytes在此处表示从offlbl开始接收的ARINC字个数。
返 回 值:正确时返回接收的ARINC字个数;
错误时返回ERROR,表示该设备节点未打开。
例 子:#include "EXPORT_6302.h"
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 31 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
e. 写操作函数
ARINCRcvMsg RcvMsg0;
=0; /*receive data from label 0*/
read(fd2,(char *)&RcvMsg0,rcvnum);
函数定义:int write(int fd, char * buffer, size_t nbytes);
功 能:向发送设备写入数据
参数说明:已打开的设备节点句柄
发送缓冲区,该缓冲区的数据结构如下:
typedef struct
{
char SendMode; /* Send Mode: 0--single send; 1--loop send */
ULONG Data[256]; /* data buffer for sending */
} ARINCSendMsg;
该数据结构在EXPORT_6302.h中定义。
nbytes在此处表示要发送的ARINC字个数。
返 回 值:正确时返回接收的ARINC字个数;
错误时返回ERROR,表示该设备节点未打开。
例 子:#include "EXPORT_6302.h"
ARINCSendMsg SendMsg;
de=0;
write(fd1,(char *)&SendMsg,sendnum);
f. ioctl操作函数
函数定义:int ioctl(int fd, int function, int arg);
功 能:实现对设备的基本配置操作
参数说明:fd,已打开的设备节点句柄
function,要进行的配置操作命令
arg,提供给配置操作的参数
具体的命令及参数请参见下表。
functioarg 功能说明 返回值
n
0x11 无意义 清空双口RAM该通道接收缓冲区正确返回OK。错误返回ERROR,表中的数据,并将接收计数归零 示设备句柄错误。
0x13 无意义 读中断标志,并将其清零 正确返回该通道的中断标志;错误返回ERROR,表示设备句柄错误。
0x14 0或1 停止发送,参数值:0表示单发正确返回OK;错误返回ERROR,表方式;1表示循环发送方式 示设备句柄错误。
0x15 无意义 读接收计数 正确返回该通道的接收计数值;错误返回ERROR,表示设备句柄错误。
0x16 Lable 设置接收时向PC机发送发中断正确返回OK;错误返回ERROR,表的LABLE值 示设备句柄错误。
0x17 无意义 读命令字缓冲区的状态,为0时返回OK时表示上一次命令执行完可以继续进行命令缓冲区操作,表示上一次的命令已经执行完成,返回ERROR时未完成,需等待
成,否则未完成
0xc0 数据间设置发送通道1的发送数据间隔返回OK表示执行完成;返回ERROR表示命令缓冲区有未完成的命令
隔(μs)
0xc1 数据间设置发送通道2的发送数据间隔返回OK表示执行完成;返回ERROR隔(μ表示命令缓冲区有未完成的命令
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 32 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
0xc2
s)
数据间设置发送通道3的发送数据间隔隔(μs)
无意义 进行板卡自检测试
返回OK表示执行完成;返回ERROR表示命令缓冲区有未完成的命令
执行完成时返回板卡自检标志,返回ERROR表示命令缓冲区有未完成的命令
返回OK表示执行完成;返回ERROR表示命令缓冲区有未完成的命令或通道号错误
返回OK表示执行完成;返回ERROR表示命令缓冲区有未完成的命令或通道号错误
返回OK表示执行完成;返回ERROR表示命令缓冲区有未完成的命令或参数错误
返回OK表示执行完成;返回ERROR表示命令缓冲区有未完成的命令或参数错误
0xc3
0xc4
0xc5
0xc6
0xc7
0xc8
0xc9
设置接收控制命令,参数值:4~7位表示通道号,范围1~6。0~3位表示接收控制字,最低两位有效
通道号 取消接收控制命令,参数值:4~7位表示通道号,范围1~6。0~3位无效
芯片号设置校验位命令,参数值:4~7和校验位表示芯片号,范围1~3。0~3位表示校验方式,0为奇校验,1方式
为偶校验
芯片号设置发送器速率命令,参数值:和发送4~7位表示芯片号,范围1~3。0~3位表示发送速率,0表示发速率
送器速率为时钟速率的十分之一,1表示发送器速率为时钟速率的八分之一
芯片号设置接收器速率命令,参数值:和接收4~7位表示芯片号,范围1~3。0~3位表示接收速率,0表示接速率
收器速率为时钟速率的十分之一,1表示接收器速率为时钟速率的八分之一
芯片号设置数据长度命令,参数值:4~和数据7位表示芯片号,范围1~3。0~3位表示数据长度,0表示一个长度
ARINC字的长度是32位,1表示一个ARINC字的长度是25位
通道号和控制字
返回OK表示执行完成;返回ERROR表示命令缓冲区有未完成的命令或参数错误
返回OK表示执行完成;返回ERROR表示命令缓冲区有未完成的命令或参数错误
5.4.3 演示程序说明
要使用板卡驱动程序,首先要在应用程序的开始部分调用驱动程序中的函数HT6302Drv来初始化板卡,EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 33 页
英贝特航天科技
HT-6302 ARINC429总线PCI插卡 使用说明书(V1.2)
例如:HT6302Drv()。演示程序test6302.c演示了如何在VxWorks下通过标准系统调用函数操作HT6302板卡,要开始演示程序,可将test6302.o下载到目标机中,也可以将test6302.c复制到BSP目录中,连同系统一起编译。在目标shell中输入HT6302(),或在启动代码中直接调用HT6302()函数来测试板卡,程序首先进行单发测试,发送通道1发送数据,接收通道1和2接收数据;然后进行循环发送测试,其中演示了各个系统调用的使用方式。
6 配件/选件
HT-6302板
光盘
配套驱动程序,包括Windows、Wince、Linux、VxWorks程序支持
注:不提供连接电缆,可提供测试电缆,使用我公司提供的软件测试程序,进行测试。基于用途不同和环境保护考虑,本测试电缆设计用途仅供用户测试本产品使用,批量订货时可请用户注明是否需求。
一块
一片
EMBEDTEC
Homepage: Technical Support:*********************
共 34 页 第 34 页


发布评论