基于Moxa动态库的同步卡调试器设计

发布者:德州小孙最新更新时间:2007-09-04 来源: 现代电子技术关键字:端口  函数  校验  缓冲 手机看文章 扫描二维码
随时随地手机看文章

1 引 言

项目中多套测量设备相距较远,通讯时外接同步调制解调器。在仿真执行时往往条件不具备,联试时较困难。监控软件本文不予讨论,为了在联试中能快速分离出通讯双方的对错,作者设计了这款调试器,另一个目的就是在无调制解调器时辅助开发人员快速开发出监控软件,该调试器可以仿真通信任意一方。设计目标为:调试器可以灵活定制通讯规程,设备端口一旦初始化完成。可以自动接收对方信息,允许十六进制显示原码,可以显示接收次数、长度。己方发送时可以依字节形式或字符形式发送。如果是字节形式,允许定制任一字节内容,允许定时发送,可以设定发送长度等。

2 具体实现

根据这一需求,作者使用Delphi 7.0开发这款软件。首先定制界面,该部分较简单,略之。关键部分如下:设备初始化及I/O,十六进制显示,十六进制输入。为了做到通用性,作者重新改写了Moxa的库函数,精简为如下几条函数:

设备打开函数;设备读函数;设备写函数;设备刷新函数;设备关闭函数。

设备打开是关键,该函数综合了Moxa库中的几个函数,规格定制以参数形式提供。主要代码如下(注意Uses部分应包含Moxa的Syncapi.bas库):


HDLC通信是同步通信方式,CRC校验是必须的,另一方面,在实际应用中,通信双方都要使用外时钟,而开发阶段一般使用内时钟,所以本初始化函数将时钟方向作为参数设置。

十六进制显示Delphi提供了BinToHex函数,但这只显示单个数值成十六进制形式。作者另编了一函数,可以显示一缓冲区内容,并且以规范的形式显示。例如:73 AB4D 5F。

十六进制输入较麻烦,制作如下:在界面上定制一StringCrid组件,定制格子为2行1 024列,每个格子可以输入2个字母大小,上一行在FormCreat()消息中填充为序号数,下一行用于定制十六进翻显示输入。

(1) 定制该格子的KeyPress消息,用集合类检查输入该格子的是否是十六进制字符,如果不是,给出提示。

(2) 定制该格子的StringGridlSetEditText消息,判断输入字符串是否大于2,如果是,不予理睬。该方法保证输入字符串是规范的十六进制形式,例1A 5F 4D 3401 7E。

3 发送机制设计

发送设计为线程,该线程等待发送事件,该事件由用户按钮或定时消息触发,线程流程为:

Do While True Begin

判断线程是否退出,如退出结束该线程;

如不退出,永远等待发送事件,该事件设计为无名手工复位的简单事件,事件置位由界面发送按钮或定时期器触发;

如等到该事件,复位该事件,填写发送缓冲内容,调发送函数,完成发送,发用户消息告知前台发送完成;

End;

4 接收机制设计

接收亦设计为线程,该线程睡眠10 ms读端口,如果读不到或者读错误,调陷阱代码处理,如读到发用户消息给前台,读入缓冲传给前台缓冲供前台显示,显示形式由界面决定(十六进制或字符)。

5 用户消息处理

前台用户消息为读完成和写完成消息,前台用户消息完成显示或者存储操作,根据界面选择框确定显示形式(char or byte),读人次数,读入长度,是否要求永远显示(可以常时间监视),是否要求存储文件。

6 其他设计部分

(1) 设计一编辑控件,可以输入发送长度。

(2) 设计一无线电按钮组,用于判断是字符形式或字节形式输入。

(3) 定制收、发字节长度,次数显示,定制状态条各种提示符等。

(4) 设计一发送按钮,完成发送缓冲区填充,并调发送函数发送之。

(5) 设计一Timer组件,间隔可以定制,调发送按钮完成定时发送。

(6) 设计该调试器的陷阱处理部分,处理可能的异常。如突发硬件异常事件、显示、异常大数据处理等。

(7) 设计该调试器的接收信息存储部分,允许将接收信息自动存储为文件。

7 结 语

作者开发的这个同步卡调试器在航天工程现场已多次使用,快速帮助通信双方分离问题。文中给出了同步卡调试器的关键部分,由于他支持位级的输入编辑,发送时序也可以选择,所有的这一类项目都可以调试,在现场或任务阶段为项目相关人员提供了有力支持。通信双方均可受益。

关键字:端口  函数  校验  缓冲 引用地址:基于Moxa动态库的同步卡调试器设计

上一篇:数字调谐集成电路T2104在收音机中的实际应用
下一篇:无线射频识别RFID中间件技术

推荐阅读最新更新时间:2024-05-13 18:37

STM8库函数开发手册(2) //中断、定时器4
第一部分 中断控制器库 itc.c 1.ITC_GetCPUCC() //读取CC寄存器 u8 u8_value;u8_value = ITC_GetCPUCC(); 2.ITC_DeInit() //恢复ITC相关寄存器到默认值 3. ITC_GetSoftIntStatus() //返回CC寄存器中的软件中断优先级位(I1,I0)的值 u8 u8_value;u8_value = ITC_GetSoftIntStatus(); 4. ITC_SetSoftwarePriority(IrqNum,PriorityValue) //设置指定中断源的软件优先级 其中IrqNum中断源定义: 其中Priori
[单片机]
STM8库<font color='red'>函数</font>开发手册(2) //中断、定时器4
矢量网络分析仪单端口校准测试
矢量网络分析仪作为测量微波信号幅度和相位的一种高精密系统,它的测量精度很大程度上依赖于校准(精度改善的过程)。 本期视频贝贝工程师将为大家带来矢量网络分析仪的单端口校准教程。
[测试测量]
动车组卧铺装烟火报警器 随时显示状态
  12月21日起,卧铺动车组列车将首次在京沪杭间投入运营,昨天上海铁路局提前揭秘了卧铺动车组,除了比现在的动车高以外,还利用先进的缓冲装置和密封设施,保证高速下旅客不受打扰。   按照铁道部统一部署,从12月21日起,北京至上海和北京至杭州间将首次开行3对卧铺动车组列车。其中北京至上海D305/D306次,经停南京。卧铺动车组列车开行时间,全部安排在晚上,夕发朝至。记者看到,D306次上海至北京列车,南京站23:41开车,次日7:40到北京,全程只要7小时59分钟。   上海铁路局的专家介绍,卧铺动车组列车采用先进的缓冲装置和密封设施,列车运行平稳、安静。在列车密封设施方面,卧铺动车组列车对车底、车体的隔音设施进行了技术改造
[安防电子]
Xbox Series X背面端口和搭载AMD处理器实物
美国当地时间1月6日,在AMD的CES 2020演讲中,微软Xbox Series X的背面和控制器手柄,还有搭载的AMD定制处理器终于泄露出来。   微软即将推出的Xbox Series X主机背面包括2个HDMI端口,一个以太网端口,2个USB-C端口和一个S/PDIF端口,以及通常的电源端口。   双HDMI端口意味着很多可能,包括对8K的支持,对VR和AR的支持,以及可以使用多个显示器,这看起来非常酷。当然还不太确定最终支持哪些(尽管我们确实知道Xbox Series X将支持8K)。 Xbox Series X主机正面也有典型的USB端口,但是只有一个。这意味着,在外部硬盘驱动器上,你可能必须做出一些妥协。
[手机便携]
PIC延时函数的分析
void delay(char n) { char i; for(i=n;i 0;i--); //查看汇编就会发现 这里用了3个指令周期,4M晶振就是3us 而51单片机12MHz是2us //从51转PIC的同志要注意了。 } 36 07FD l2 37 07FD 0BA1 decfsz ?a_delay+1 38 07FE 2FFD goto l2 39 07FF 0008 return
[单片机]
4月面板厂营收整体衰减,转型可否缓冲影响
集微网消息,近日,面板大厂纷纷公布4月份的成绩单。 其中,友达光电4月自行结算合并营收为209.9亿元(新台币,单位下同),较上月减少13.9%,较去年同期下降14.3%。 4月份整体大尺寸面板出货量包括液晶电视、桌上显示器及笔记本电脑面板等超过743万片,较3月份减少23.2%。中小尺寸面板出货量约1,132万片,较3月份增加10.3%。 群创在集团资源整合效益下,4月大尺寸面板出货小增,单月营收209亿元、月增1.4%、年增5.9%。惟后续表现可能要进一步观察美国关税对市场的影响。 群创光电2019年4月大尺寸合并出货量共计1,054万片,较上月增加4.1%;中小尺寸合并出货量共计1,999万片,较上月减少10
[手机便携]
linux-2.6.24.4中s3c2410和dma有关的函数的分析
首先介绍s3c2410与DMA相关的寄存器。 s3c2410共有4通道的dma,每通道9个寄存器,共36个。 1、DISRCn 该寄存器保存待传送数据的源地址。 2、DISRCCn 源控制寄存器。位1表示数据源的总线类型,位0表示地址是否自动增减。 3、DIDSTn 该寄存器保存待传送数据的目的地址。 4、DIDSTCn 目的控制寄存器。位1表示目的地址的总线类型,位0表示地址是否自动增减。 5、DCON DMA控制寄存器。 6、DSTATn DMA状态寄存器。 7、DCSRCn 当前源地址寄存器。 8、DCDSTn 当前目的地址寄存器。 9、DMASKTRIGn DMA MASK寄存器。
[单片机]
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved