一种远程无线数传系统的设计方案
远程无线数传系统的设计方案摘要:笔者尝试设计一种远程无线数据传输系统,并构建了发射终端和接收终端两个软件,成功实现了最远5km数据传输距离,为基于两地的不同数据库之间数据的传输提供了一种新的解决方案。
关键词:无线数据传输,二次开发包
1.项目概念
远程无线数传软件开发包的软件基于Windows操作系统,采用Delphi开发,数据库采用SQLServer2000作为后台数据库。系统以简易可行的方法实现了远程无线数传技术,实时数据库的数据校验和写入。经过了实际的检验,现已成功稳定运行。

2.远程无线数传软件开发包的无线传输模式
3.远程无线数传软件开发包的数据流程图
4.无线数传设备选型
采购深圳市科易连通讯设备有限公司生产的KYL-320I无线数传模块,具体参数如下:
载波频率:433MHz,450MHz,470MHz,868MHz,915MHz等ISM频点;
多种可选的通讯接口:RS-232、TTL、RS-485、USB;
8个通讯信道,也可根据客户要求扩展;
传输数率:1200、2400、4800、9600、19200、38400bps;
数据格式:8N1/8E1/8O1(也可提供其它格式,如9位数据位);
收发一体,半双工工作模式;
低功耗,并具有休眠功能;
工作温度:-35℃~+75℃(工业级);
天线阻抗:50Ω(标配为SMA,可定制);
供电电源:DC5V(可根据用户要求定制);
输出功率:≤500mW;(可根据用户要求定制)
接收电流:28mA(TTL接口);
接收灵敏度:-123dBm(1200bps);
-118dBm(9600bps)
发射电流:350mA;
休眠电流:20uA;
传输距离:2km以上(BER=10-5@9600bps,标配10cm天线,空旷地,天线高度1.5m);
3Km以上(BER=10-5@1200bps,标配10cm天线,空旷地,天线高度1.5m);
外型尺寸:80mm×45mm×20mm(不包括天线接头)。
模块如下图
5.系统设计
系统设计包括以下主要模块:字符信息转换设计,发送模块设计,接收模块设计,信息加密设计,系统初始化设计。以下是各模块的详细设计
1.字符信息转换设计
字符信息转换设计所要完成的工作是将字段内容信息转换为无线电信号能够识别的二进制信息,同时在接收端收到信息后又能准确无误的将这些二进制信息还原成正确的字段内容信息,这部分是基础性工作。
1二进制十六进制相互转换函数编写
//把二进制串转换成十六进制串或相反
functionBinToHexEachOther(ValueA:string;Action:Boolean):string;
var
ValueArray1:Array[0..15]ofstring[4];
ValueArray2:Array[0..15]ofchar;
i:shortint;
begin
//数组初始化
ValueArray1[0]:='0000';ValueArray1[1]:='0001';ValueArray1[2]:='0010';
ValueArray1[3]:='0011';ValueArray1[4]:='0100';ValueArray1[5]:='0101';
ValueArray1[6]:='0110';ValueArray1[7]:='0111';ValueArray1[8]:='1000';
ValueArray1[9]:='1001';ValueArray1[10]:='1010';ValueArray1[11]:='1011';
ValueArray1[12]:='1100';ValueArray1[13]:='1101';ValueArray1[14]:='1110';
ValueArray1[15]:='1111';
fori:=0to15do
ifi=10thenValueArray2[i]:=chr(65+(i-10))
elseValueArray2[i]:=inttostr(i)[1];
Result:='';
ifActionthen
begin//二进制串转换成十六进制串
if(Length(ValueA)MOD40)then
ValueA:=stringofchar('0',Length(ValueA)MOD4)+ValueA;
while(Length(ValueA)=4)do
begin
fori:=0to15do
ifCopy(ValueA,1,4)=ValueArray1[i]then
Result:=Result+ValueArray2[i];
ValueA:=Copy(ValueA,5,Length(ValueA)-4);
;
elsebegin//十六进制串转换成二进制串
while(Length(ValueA)=1)do
begin
fori:=0to15do
ifCopy(ValueA,1,1)=ValueArray2[i]then
Result:=Result+ValueArray1[i];
ValueA:=Copy(ValueA,2,Length(ValueA)-1);
;
;
;
2二进制与字符串互相转换函数编写
//把字符串转化为二进制数
FunctionConvertStrToBin(Value:string):string;
vartempHex:string[255];
i:integer;
begin
Result:='';
iftrim(Value)=''thenExit;
tempHex:='';
fori:=1toLength(Value)do
begin
tempHex:=IntToHex(Ord(Value[i]),2);//每个字符转成两位十六进制数
Result:=Result+BinToHexEachOther(tempHex,False);//十六进制转成二进制
;
;
functionHexCharToInt(HexToken:char):Integer;
begin
Result:=0;
if(HexToken58)then{}
Result:=Ord(HexToken)-48
elseif(HexToken71)then{}
Result:=Ord(HexToken)-65+10;
;
//把二进制数据转化为字符串
FunctionConvertBinToStr(Value:string):string;
VartempHex:string;
i,tempInt:integer;
begin
Result:='';
iftrim(Value)=''thenExit;
tempHex:=BinToHexEachOther(Value,true);//二进制转成十六进制
i:=0;
Repeat
begin
i:=i+1;
tempInt:=HexCharToInt(tempHex[i]);
i:=i+1;
tempInt:=tempInt*16+HexCharToInt(tempHex[i]);
//以上将两位十六进制数转变为一个十进制数
Result:=Result+chr(TempInt);//转成ASCII码
;
Untili=length(tempHex)
;
2.发送模块设计
发送模块设计是完成将二进制信息用相应的载波频率发送出去,分为数据监听、无线电间隔识别码、数据发送和数据校验4个步骤。
1数据监听
//如果数据缓冲区有数据,则实时转换2进制数据,同时完成表字段的数据校验写入。
(Ser:TObject;Count:Integer);
var
Str:String;
begin
(Str,Count);
:=+Str;
'0'then
begin
;
:=true;
;
;
2无线电间隔识别码
//将表字段对应的值转换为2进制后发送,前2位数字为无线电间隔码,'));
3;
4数据发送过程
//发送数据的过程。
(conststr:string);
var
obj:PAsync;
begin
InitAsync(obj);
try
(str,obj);
(obj);
finally
DoneAsync(obj);
;
;
④数据校验
//引入时钟实时监听,并根据回传符号判断数据发送是否成功。
(Ser:TObject);
begin
if(=)and(=)and(=)and(=)and(='$')then
begin
{SString(ConvertStrToBin('a1')+ConvertStrToBin());
SString(ConvertStrToBin('b1')+ConvertStrToBin());
SString(ConvertStrToBin('c1')+ConvertStrToBin());
SString(ConvertStrToBin('d1')+ConvertStrToBin());}
SString(ConvertStrToBin('@'));
:=false;
;
;
('发送成功');
else
begin
SString(ConvertStrToBin('+'));
:=false;
;
;
('发送失败!');
;
;
3.接收模块设计
接收模块设计完成对接收的二进制信息进行解析并实时写入数据库保存,分为数据解析、数据写入和数据界定3个步骤
1数据解析
//将接收到的2进制数据转换为字符串,并截获出对应的字段值,即对号入座。
(Ser:TObject);
begin
:=ConvertBinToStr();
:=GetStr(,'a1','b1');
:=GetStr(,'b1','c1');
:=GetStr(,'c1','d1');
:=GetStr(,'d1','')then//如果时钟探测到解析数据区收到'');
;
:=false;
;
;
ifAnsiContainsStr(,'@')then//如果时钟探测到解析数据区收到'@'码,则表示发送端校验数据成功通过,可以向表中写入记录。
begin
;
('name').AsString:=;
('code').AsString:=;
('mz').AsString:=;
('dj').AsString:=;
;
;
:=false;
;
;
;
3数据界定
//指定获取数据界限的函数
functionGetStr(StrSource,StrBegin,Str:string):string;
var
in_star,in_:integer;
begin
in_star:=AnsiPos(strbegin,strsource)+length(strbegin);
in_:=AnsiPos(str,strsource);
result:=copy(strsource,in_star,in_-in_star);
;
4.信息加密设计
采用美国国防部军方的MD5加密设计,对重要财务敏感信息加密发送。使用MD5加密先定义变量并作以下单元引用声明:
var
Form1:TForm1;
md5:TIdHashMessageDigest5;
longWordRec:T4x4LongWordRecord;
//对文本信息进行MD5加密
(Ser:TObject);
begin
md5:=;
longWordRec:=();
:=(longWordRec);
;
5.测初始化设计
初始化设计包括:搜索可用的SQL服务器,建立连接,串口设置等。
//启动SQL数据库服务器并对接相应的表。
(Ser:TObject);
begin
:=false;
:='Provider=;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=test;DataSource='++'';
:=true;
:=true;
:='Testtable';
:=true;
DBGridAutoSize(DBGrid1);
;
//程序运行时搜索网内可以用的SQL服务器
(Ser:TObject);
var
I:integer;
x,y:oleVariant;
begin
x:=CreateOleObject('');
y:=;
;
forI:=1
begin
((I))
;
//启动程序时自动读取配置文件,设定串口通讯参数。
;-----------------------------------------------------
;无线传输通讯设置
;----------------------------------------------------
[COMM1]
ComPort=COM5---------------------打开串口5作为通讯端口
BaudRate=2400---------------------设置波特率2400
Parity=None---------------------校验位为空
DataBits=8---------------------数据位8
StopBits=1---------------------停止位1
6.测试程序界面
6.系统测试
·数传设备:KYL-320I型无线数传模块
·传输距离:5km(有工厂厂房阻挡及电磁干扰环境)
·平均传输速度:3秒/每条数据
·断电续传:有
·正确率:100%
·校验:MD5加密算法校验
7.结论
笔者通过以上设计工作成功实现了最远5km数据传输距离,为基于两地的不同数据库之间数据的传输提供了一种新的解决方案。
推荐阅读
-
纵目科技转战港股上市:3年累亏15.8亿,湖北小米持股4.73%
3月28日,纵目科技(上海)股份有限公司(以下简称“纵目科技”)披露港股上市聆讯资料集。公司曾于2022年11月申请科创板上市,后撤回上市申请。面包财经梳理公开资料显示,2021年至2023年,纵目科技净利润累计亏损约15.8亿元。此外,公司2023年的收入增速有所放缓。ADAS解决方案提供商纵目科...
-
“科技范儿”十足!“中国环境谷”的绿色“蝶变”
冬日暖阳下,合肥市蜀山区运河新城天空湛蓝,一台台无人驾驶智能环卫车来回作业。这些“科技范儿”满满的智能环卫车,来自合肥市蜀山区“中国环境谷”的一家企业——启迪数字环卫集团。短短3年多时间,“中国环境谷”集聚了以启迪数字环卫集团等为代表的环境领域重点企业160余家,实现了从无到有、从小到大、从弱到强的...
-
本土20W PD快充代工厂大盘点
5月28日,由充电头网主办的【2021中国跨境电商3C配件选品大会】将在中国深圳正式开幕,本次展会将汇聚近百家优质的3C配件工厂,产品涵盖快充充电器、氮化镓快充、大功率移动电源、智能车载充电器、户外储能电源、无线充电器、USB4线缆、MFi数据线、TWS无线耳机、音箱、新能源等多个类目。致力于为跨境...
-
村改·蝶变⑲ | 沙边村:乐从南大门将变身“科技小镇”
编者按佛山市委副书记、顺德区委书记郭文海在多个场合都反复强调:“村级工业园改造就如同一根扁担,一头挑着高质量发展,一头挑着乡村振兴。”村改实现产业振兴,以产业振兴带动文化振兴和生态振兴,以文化振兴、生态振兴促进产业振兴,最终实现乡村振兴。顺德乡村振兴路线图已逐步清晰,村居是村改的主战场,也是村改的最...