基于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-07 15:59

基于S3C6410裸机程序中可能用到的函数分享
裸机程序中可能用到的文件以及函数 #include“system.h” /************************************************************************************************************************* *函数:voidSetEINT_TriggerMode(u8EINT0_N,u8Trigger) *功能:设置外部中断组0触发模式 *参数:EINT0_N:中断源的编号(见:中断组0编号定义);Trigger:触发模式(EXT_LowLevel:低电平触发;EXT_HighLevel:高电平触发; EXT_NegEdg
[单片机]
基于S3C6410裸机程序中可能用到的<font color='red'>函数</font>分享
STM8S TIM1/TIM2 初始化函数
/* TIM2初始化函数 返回值:无 参数:定时时间 us */ #define CPU_CLK 16027 //主频 KHz void timer2_Init(ulong us) { uchar PSCR = 0; //分频 uint pow; ulong ARR; start: pow=1; for(uchar i=0;i PSCR;i++) //算2的n次方 { pow *= 2; } if(us 250000) ARR = (((((us-1)/ 1000) * CPU_CLK) )/pow); else ARR = ((((us-1) * CPU_CLK+
[单片机]
μC/OS—II下中断服务程序和外设驱动的开发
在嵌入式应用中,使用RTOS的主要原因是为了提高系统的可靠性,其次是提高开发效率、缩短开发周期。 μC/OS-II是一个占先式实时多任务内核,使用对象是嵌入式系统,对源代码适当裁减,很容易移植到8~32位不同框架的微处理器上。但μC/OS-II仅是一个实时内核,它不像其他实时操作系统(如嵌入式Linux)那样提供给用户一些API函数接口。在μC/OS-II实时内核下,对外设的访问接口没有统一完善,有很多工作需要用户自己去完成。串口通信是单片机测控系统的重要组成部分,异步串行口是一个比较简单又很具代表性的中断驱动外设。本文以单片机中的串口为例,介绍μC/OS—II下编写中断服务程序以及外设驅动程序的一般思路。 1 μC/OS-I
[嵌入式]
USB-IF宣布首款四端口USB 3.0主机控制器
北京 – 2011 年 4 月 11 日 – USB 实施者论坛(简称 USB-IF)今天宣布已认证 德州仪器推出的 TUSB7340 SuperSpeed USB (USB 3.0) 四端口主机控制器以及 TUSB7320 SuperSpeed USB 双端口主机控制器。随着整个行业加快对 SuperSpeed USB 的采用, 产品供应的增加将继续推动具有竞争优势的生态系统,同时不断推动创新。这些获认证的 主机控制器,通过为制造商和开发人员创造更多的获认证解决方案,推动 SuperSpeed USB 生态系统前进。 “自四个月前宣布第二款获认证主机控制器以来,SuperSpeed USB 生态系统已经经历 了巨
[嵌入式]
单片机中Sprint函数
利用sprintf()函数转化为字符串发出去 最近在做项目 ,用到了好几次sprint,这个函数功能甚是强大啊。是转换成字符串的利器。下面是我在网上找到的,感觉比较好的总结。感谢各位网友,大家一起进步! sprintf函数的用法 1、该函数包含在stdio.h的头文件中。 2、sprintf和平时我们常用的printf函数的功能很相似。sprintf函数打印到字符串中,而printf函数打印输出到屏幕上。sprintf函数在我们完成其他数据类型转换成字符串类型的操作中应用广泛。 3、sprintf函数的格式: int sprintf( char *buffer, const char *format ); 除了前两个参数固定
[单片机]
【STM32】DMA基本原理、寄存器、库函数(1)
DMA的基本介绍 01 DMA的基本定义 DMA,全称Direct Memory Access,即直接存储器访问。 DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实现和完成的。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率大大提高。 02 DMA的主要特征 每个通道都直接连接专用的硬件DMA请求,每个通道都同样支持软件触发。这些功能通过软件来配置; 在同一个DMA模块上,多个请求间的优先权可
[单片机]
基于视频解码芯片与CPLD的实时图像采集系统
  图像采集是实时图像处理的重要步骤。目前,图像传感器件主要有CCD(Charge Coupled Device)和CMOS(Complementary Metal Oxide Scmiconductor)。CCD技术现在已经非常成熟,CCD摄像头仍然是高端应用的首选器件。它输出的模拟视频信号包括图像信号、行与场消隐信号、行与场同步信号等七种信号。传统的视频采集系统由A/D转换电路、控制逻辑电路、数据缓存电路、地址发生器、地址译码电路等构成,此类设计有电路复杂、芯片繁多、开发周期长、成本高等缺点。   本文采用视频解码芯片与复杂可编程逻辑器件CPLD(Complex Programmable Logic Device)设计了一套
[家用电子]
苹果35W双C口电源适配器零售包装曝光 端口是并排的
日前,苹果尚未发布的35W双C口电源适配器的零售包装已经在网上浮出水面。 微博用户WHYLAB提供了新电源适配器的一些细节,并表示将针对不同的市场生产多达五种不同的型号。一些适配器使用折叠式设计,使设备在携带时更紧凑。 根据之前的爆料,新的适配器使用氮化镓(GaN)技术,预计将比非GaN型号更具效率。 即将发布的苹果35W电源适配器可能会支持USB-PD技术,以便在特定的设备中支持更快地充电。与大多数充电器不同的是,其双USB-C端口是并排的。 据报道,这款产品的批量生产已经开始。
[手机便携]
小广播
最新网络通信文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved