【开源】基于T5L屏的无线电控制系统
在中秋佳节来临之际,分享一下无线电控制系统
一、简单普及无线电知识
1.无线电是指在所有自由空间(包括空气和真空)传播的电磁波,是其中的一个有限频带,上限频率在300GHz(吉赫兹),下限频率较不统一,在各种射频规范书,常见的有3KHz~300GHz(ITU-国际电信联盟规定),9KHz~300GHz,10KHz~300GHz。
无线电技术是通过无线电波传播信号的技术。无线电技术的原理在于,导体中电流强弱的改变会产生无线电波。利用这一现象,通过调制可将信息加载于无线电波之上。当电波通过空间传播到达收信端,电波引起的电磁场变化又会在导体中产生电流。通过解调将信息从电流变化中提取出来,就达到了信息传递的目的。
2.无线电频率
- 频率不同
- 长波通信:是利用波长长于1000米(频率低于300KHz)的电磁波进行的无线电通信。
- 短波通信:是波长在100米~10米之间,频率范围3兆赫~30兆赫的一种无线电通信技术。
- 原理不同。
- 长波通信主要用地波形式传播。
- 短波通信主要利用电离层反射传播,传播距离环绕地球。
3.短波电台 短波电台是指工作波长为100~10米(频率为3~30兆赫)的无线电通信设备。(高档无线电台,可以在100hz-1000Mhz频率范围内接收)主要用于传送话音、等幅报和移频报。在传送电话信号时,采用振幅调制和单边带调制。由发信机、收信机、天线、电源和终端设备等组成。一般分为便携式、车载式和固定式电台。具有体积小、重量轻等特点,通常采用鞭形天线,利用地波进行近距离通信,功率通常为数瓦至数十瓦。短波通讯距离,短波电台是依靠大气中的电离层反射,可以传播很远距离。最佳状况时,可以联通全球各地。一般情况下都能传输几百公里,所以很多远程联络,只有依赖短波电台进行联络通讯,象航海、航空通讯等。广大无线电爱好及火腿一族,也把短波通讯,作为追求目标。
4.业余无线电短波通联常识——短波通联频率选择 (1)160米波段(1.8~2.0MHz) 这其实是一个属于中波(MF)波段的业余频段。这个波段的无线电波以地波传播为主。一般来说,地波传播的最大距离只有250公里,所以在太阳黑子活动的一般年份,这个频段只能用于本地、附近地区间的通信。但大量实践证明。在冬季黎明前一、两个小时内,在太阳落山前的一小时内,它有可能传播到几千公里以外的地方。所以,国际上在每年的一、二月份都要为160米波段专门组织比赛,让热衷于这个波段通信的爱好者得以大显身手,比如我们熟知的“CQ World Wide 160-Meter Contest”。 (2)80米波段(3.5~3.9MHz) 和160米波段一样,它也基本上是靠地波传播,晚上(一般要到零点以后)和邻近国家的联络比较有保障。在太阳黑子活动相对平静年份,晚上DX的效果相当不错。国内一些年龄较大的爱好者热衷于晚上的3.850MHz进行通联活动。 (3)40米波段(7.0~7.1MHZ) 40米波段是短波通联的常用频段之一。国内爱好者在这个频段上工作的比较多,喜欢CW的爱好者常年在7.023MHz工作。刚刚入门的爱好者,则喜欢在7.050MHz上进行呼叫。白天这个波段可以很好的用作临近城市业余电台相互间联络。到了晚上,在这个波段上可以联络到世界各地的电台。 (4)30米波段(10.0~10.15MHZ) 在业余无线电运动中,这个波段只用于 CW 通信和数字通信,不允许语音通信。另外,这个波段的输出功率不能超过 200W。30米波段在白天以及傍晚之后的几个小时里都适合进行远程通信。许多CW爱好者聚集在这个波段的下端,参加各种国际竞赛,数字通信则使用这个波段上端。 (5)20米波段(14.0~14.35MHZ) 20米波段是爱好者使用最多的“黄金”频段之一。因为,无论是白天还是晚上,甚至在太阳黑子活动的低峰期,也还能够用这个波段和世界各地联络。和前面介绍的波段不同,这个波段开始出现“越距现象”了。即出现了一个地波传播到达不了,而天波的“一跳”又超过了这个通联距离的现象。这是天波传播的一个特别的现象。受“越距”现象影响,我们要是想在国内邻近省份之间进行联络,比如北京和天津、南京和苏州这种距离百十公里的城市之间,通常都不能用20米波段进行联络。但由于电离层是在不断变化之中,所以“越距”的范围不是固定个变的。 (6)15米波段(21.0~21.45MHz) 15米波段在全世界来说,都是一个最热闹的波段。该波段可以很好地用于远程通信,而15米波段常与20米波段相辅相成,比如在20米波段上与欧洲联络不好,这时15米却变得好起来。15米波段的越距现象更加明显,尤其是在降冬和盛夏季节,听本省或国内电台是很困难的。 (7)10米波段(28.0~29,7MHz) 10米波段的天线是整个短波中尺寸最小的,而传播过程中的绕射能力又比超短波强,所以许多爱好者在近距离上用这个波段进行移动通信,日本YAESU的FT-8900R车载调频电台也包含了对29MHz的发射支持。这是一个理想的低功率远距离通信波段,在白天传播情况比较好的时候,能达到像打电话那样的通信效果。由于频率比较高,晚上电离层较小的密度,己不能对其形成反射,所以这个频段的远程通信只能在白天。
二、无线电中短波电台
1.首先通过几张图片了解一下
下边的就是实战了,在野外空阔的地方,真是天高任鸟飞
上面的图片是一些爱好者喜欢到野外通联,自己架一个天线,信号很好的。但是要注意几个地方,玩这个无线电需要考证的,A证和B证,不是随意去玩的。
2.无线电控制系统
这个目前大部分都是用arduino来做,就是atmel单片机,简单参考一下。
这是短波LPF这块
电路这块不多介绍了,整体框图如下,整个的控制系统还是比较复杂
三、我们现在做的就是中间的无线电控制系统
整体供电12V,触摸屏是采用T5L主控的迪文7寸电容屏(12V供电),采集控制板主控采用stm32,采用TTL串口通讯。
1.整体功能介绍
1)短波的7波段高频识别,这个功能有个特别之处,就是识别以后的一个保持功能,比如识别到80m波段,只要其他波段没有进来,就一直保持这个80m波段,并一直保持通联状态。
2)短波的自动识别和手动打开功能。
3)输入功率和输出功率显示,采用数字和进度条方式。
4)天线发射功率和反射功率比值,采用数字显示。
5)整个系统的直流电压和电流显示,采用数字显示。
6)两个温度采集显示。
7)整个系统的供电效率显示。
8)整个系统的状态显示。
9)7波段天线端口设置。
10)电压电流等参数阈值设置。
11)输入功率和输出功率校准。
12)背光设置。
13)所有设置参数都是存储到eeprom里边,下次开机读取参数并显示。参数设置采用键盘和增量调节结合方式。
每个功能不详细说明了,这样搞得篇幅太长了。
2.DGUS界面如下
(1)主界面
(2)设置界面
(3)数字键盘界面
(4)实物如下
3.ADC校准参考代码:
- <font size="3" face="宋体"><b><font size="4" face="黑体">int adc_rawvals[NUMADCVALS];
- float adc_realvals[NUMADCVALS];
- void adc_calculate_raw_values()
- {
- if(isAdcConvReady())
- {
- for(int i=0; i<=UTEMP2; i++)
- {
- if(i == UFWDIN || i == UFWDFLT)
- adc_rawvals[i] = ui16_Read_ADC_ConvertedPeakValue_noHold(i);
- else if(i == UREVANT)
- adc_rawvals[i] = ui16_Read_ADC1_ConvertedValue(i);
- else
- adc_rawvals[i] = ui16_Read_ADC1_ConvertedValueSmooth(i);
- }
- adc_rawvals[UFLTFWDPEAK] = ui16_Read_ADC_ConvertedPeakValue(UFWDFLT);
- adc_rawvals[UDRVFWDPEAK] = ui16_Read_ADC_ConvertedPeakValue(UFWDIN);
- adc_rawvals[UFWDANT] = ui16_Read_ADC_ConvertedPeakValue_noHold(UFWDANT);
- adc_rawvals[UANTFWDPEAK] = ui16_Read_ADC_ConvertedPeakValue(UFWDANT);
- }
- if(isADC3ConvReady())
- adc_rawvals[UREVFLT] = ui16_Read_ADC3_ConvertedValue();
- }
- void adc_calculate_real_values()
- {
- // Calculate PS Voltage电压
- // Spannungsteiler 390k : 10k
- adc_realvals[UMESS] = (float)(adc_rawvals[UMESS] *(390+10)) / 10.0;
- adc_realvals[UMESS] /= 1000.0;
- if(adc_realvals[UMESS] < 4.0) adc_realvals[UMESS] = 0;
- // Strommessung
- // beim INA193A ist die Ausgangsspannung = 20 x Shutspannung
- // bei einem Shunt von 1mOhm: Ushunt = Ilast * 0,001
- // Umess = Ushunt * 20
- // Umess = Ilast * 0,001 * 20 = Ilast * 0,02
- // Ilast(=Ianzeige) = Umess[mV] / 20
- // der Rohwert des INA193 kann einen 0-Offset von bis zu xxx (gemessen 49mV, 19mV usw) haben电流
- // dieser Offset ist bei richtigen Messungen scheinbar nicht mehr vorhanden
- if(adc_rawvals[IMESS] < 45) adc_rawvals[IMESS] = 0; // alles unter xxx mV ignorieren (kan bei verschiedenen INAs variieren)
- if(adc_realvals[UMESS] == 0) adc_rawvals[IMESS] = 0;// wenn keine Spannung da, dann zeige auch keinen Strom an
- float R_SHUNT = shuntValue[pcfgdata->shuntR]; // mOhms
- adc_realvals[IMESS] = (float)adc_rawvals[IMESS] / (20.0*R_SHUNT);
- // Temperaturmessung
- adc_realvals[UTEMP] = calc_temp(adc_rawvals[UTEMP]);
- adc_realvals[UTEMP2] = calc_temp(adc_rawvals[UTEMP2]);
- // ICOM Banderkennung
- /*
- IC-7300: (Spannungen nach dem Vorteiler)
- < 2M .... 2,30
- 2-4M .... 1,87
- 4-8M .... 1,56
- 8-11M ... 0
- 11-15M .. 1,25
- 15-22M .. 0,98
- 22-30M .. 0,68
- > 30M ... 0,58
- */
- if(adc_rawvals[UBAND] < 300) adc_realvals[UBAND] = 30;
- else if(adc_rawvals[UBAND] < 630) adc_realvals[UBAND] = 6;
- else if(adc_rawvals[UBAND] < 830) adc_realvals[UBAND] = 1210;
- else if(adc_rawvals[UBAND] < 1115) adc_realvals[UBAND] = 1715;
- else if(adc_rawvals[UBAND] < 1405) adc_realvals[UBAND] = 20;
- else if(adc_rawvals[UBAND] < 1715) adc_realvals[UBAND] = 6040;
- else if(adc_rawvals[UBAND] < 2085) adc_realvals[UBAND] = 80;
- else adc_realvals[UBAND] = 160;
- calc_PwrBridges(); // die Ergebnisse stehen in dent_pwrswr Strukturen
- // nicht gemessene sondern berechnete Werte
- adc_realvals[CALC_POWER] = adc_realvals[IMESS] * adc_realvals[UMESS];
- if(adc_realvals[CALC_POWER] < 0.01)
- adc_realvals[CALC_EFF] = 0;
- else
- adc_realvals[CALC_EFF] = 100 * pwrswr_antenna.fwd_watt / adc_realvals[CALC_POWER];
- if(adc_realvals[CALC_EFF] > 100.0) adc_realvals[CALC_EFF] = 100.0;
- }
- void adc_calculate_values()
- {
- adc_calculate_raw_values();
- adc_calculate_real_values();
- }</font></b></font>
复制代码
上面的只是参考,校准这块采用最小值和最大值方式,采用线性插值的方式,多段拟合(一次多项式)。
这是界面的校准
这块是外接一个AD8317模块,1 MHz至10 GHz、50 dB对数检波器/控制器,频率相当高,在无线电领域应用非常广泛。
我们点击校准按钮,控制板接入AD8317模块,开始自动校准了,实现电压到无线电功率的转换,校准方式就是上面说的。
这是客户在测试短波识别的视频
这是我在测试短波的输入功率的模拟视频
备注说明:如需源码,请参考此链接:http://inforum.dwin.com.cn:20080/forum.php?mod=viewthread&tid=8983&_dsign=764c8b87
|