迪文科技论坛

 找回密码
 立即注册
搜索
查看: 486|回复: 2

【开源】基于T5L屏的无线电控制系统

[复制链接]

12

主题

159

回帖

952

积分

高级会员

Rank: 4

积分
952
QQ
发表于 2023-9-28 20:16:37 | 显示全部楼层 |阅读模式
本帖最后由 lihui163 于 2023-10-2 19:27 编辑

在中秋佳节来临之际,分享一下无线电控制系统
一、简单普及无线电知识
1.无线电是指在所有自由空间(包括空气和真空)传播的电磁波,是其中的一个有限频带,上限频率在300GHz(吉赫兹),下限频率较不统一, 在各种射频规范书, 常见的有3KHz~300GHz(ITU-国际电信联盟规定),9KHz~300GHz,10KHz~300GHz。

无线电技术是通过无线电波传播信号的技术。无线电技术的原理在于,导体中电流强弱的改变会产生无线电波。利用这一现象,通过调制可将信息加载于无线电波之上。当电波通过空间传播到达收信端,电波引起的电磁场变化又会在导体中产生电流。通过解调将信息从电流变化中提取出来,就达到了信息传递的目的

2.无线电频率
   频率不同
   长波通信:是利用波长长于1000米(频率低于300KHz)的电磁波进行的无线电通信。
   短波通信:是波长在100米~10米之间,频率范围3兆赫~30兆赫的一种无线电通信技术。
   原理不同
      长波通信主要用地波形式传播。
   短波通信主要利用电离层反射传播,传播距离环绕地球。
3.短波电台
短波电台是指工作波长为100~10米(频率为3~30兆赫)的无线电通信设备。(高档无线电台,可以在100hz-1000Mhz频率范围内接收。)主要用于传送话音、等幅报和移频报。在传送电话信号时,采用振幅调制和单边带调制。由发信机、收信机、天线、电源和终端设备等组成。一般分为便携式、车载式和固定式电台。具有体积小、重量轻等特点,通常采用鞭形天线,利用地波进行近距离通信,功率通常为数瓦至数十瓦。短波通讯距离,短波电台是依靠大气中的电离层反射,可以传播很远距离。最佳状况时,可以联通全球各地。一般情况下都能传输几百公里,所以很多远程联络,只有依赖短波电台进行联络通讯,象航海、航空通讯等。广大无线电爱好及火腿一族,也把短波通讯,作为追求目标。
4.业余无线电短波通联常识——短波通联频率选择


    160米波段(1.8~2.0MHz)
       这其实是一个属于中波(MF)波段的业余频段。这个波段的无线电波以地波传播为主。

    一般来说,地波传播的最大距离只有250公里,所以在太阳黑子活动的一般年份,这个频段只能用于本地、附近地区间的通信。但大量实践证明。在冬季黎明前一、两个小时内,在太阳落山前的一小时内,它有可能传播到几千公里以外的地方。所以,国际上在每年的一、二月份都要为160米波段专门组织比赛,让热衷于这个波段通信的爱好者得以大显身手,比如我们熟知的“CQ World Wide 160-Meter Contest”。

    80米波段(3.5~3.9MHz)
       和160米波段一样,它也基本上是靠地波传播,晚上(一般要到零点以后)和邻近国家的联络比较有保障。在太阳黑子活动相对平静年份,晚上DX的效果相当不错。国内一些年龄较大的爱好者热衷于晚上的3.850MHz进行通联活动。

    40米波段(7.0~7.1MHZ)
       40米波段是短波通联的常用频段之一。国内爱好者在这个频段上工作的比较多,喜欢CW的爱好者常年在7.023MHz工作。刚刚入门的爱好者,则喜欢在7.050MHz上进行呼叫。白天这个波段可以很好的用作临近城市业余电台相互间联络。到了晚上,在这个波段上可以联络到世界各地的电台。

    30米波段(10.0~10.15MHZ)
       在业余无线电运动中,这个波段只用于 CW 通信和数字通信,不允许语音通信。另外,这个波段的输出功率不能超过 200W。30米波段在白天以及傍晚之后的几个小时里都适合进行远程通信。许多CW爱好者聚集在这个波段的下端,参加各种国际竞赛,数字通信则使用这个波段上端。

    20米波段(14.0~14.35MHZ)
       20米波段是爱好者使用最多的“黄金”频段之一。因为,无论是白天还是晚上,甚至在太阳黑子活动的低峰期,也还能够用这个波段和世界各地联络。和前面介绍的波段不同,这个波段开始出现“越距现象”了。即出现了一个地波传播到达不了,而天波的“一跳”又超过了这个通联距离的现象。
    这是天波传播的一个特别的现象。受“越距”现象影响,我们要是想在国内邻近省份之间进行联络,比如北京和天津、南京和苏州这种距离百十公里的城市之间,通常都不能用20米波段进行联络。但由于电离层是在不断变化之中,所以“越距”的范围不是固定个变的。

    15米波段(21.0~21.45MHz)
       15米波段在全世界来说,都是一个最热闹的波段。该波段可以很好地用于远程通信,而15米波段常与20米波段相辅相成,比如在20米波段上与欧洲联络不好,这时15米却变得好起来。15米波段的越距现象更加明显,尤其是在降冬和盛夏季节,听本省或国内电台是很困难的。

    10米波段(28.0~29,7MHz)
       10米波段的天线是整个短波中尺寸最小的,而传播过程中的绕射能力又比超短波强,所以许多爱好者在近距离上用这个波段进行移动通信,日本YAESU的FT-8900R车载调频电台也包含了对29MHz的发射支持。这是一个理想的低功率远距离通信波段,在白天传播情况比较好的时候,能达到像打电话那样的通信效果。由于频率比较高,晚上电离层较小的密度,己不能对其形成反射,所以这个频段的远程通信只能在白天。

    调整天线发射仰角,有可能会解决“越距”通联的问题,但是可行性不高。掌握传播规律,正确选择相应波段进行DX,是每一位业余无线电爱好者应该掌握的基础知识。

二、无线电中短波电台
1.首先通过几张图片了解一下

看起来很酷啊

下边的就是实战了,在野外空阔的地方,真是天高任鸟飞

上面的图片是一些爱好者喜欢到野外通联,自己架一个天线,信号很好的。但是要注意几个地方,玩这个无线电需要考证的,A证和B证,不是随意去玩的。
2.无线电控制系统
这个目前大部分都是用arduino来做,就是atmel单片机,简单参考一下


这是短波LPF这块
电路这块不多介绍了,整体框图如下,整个的控制系统还是比较复杂


我们现在做的就是中间的无线电控制系统
整体供电12V,触摸屏是采用T5L主控的迪文7寸电容屏(12V供电),采集控制板主控采用stm32,采用TTL串口通讯。
整体功能介绍
1)短波的7波段高频识别,这个功能有个特别之处,就是识别以后的一个保持功能,比如识别到80m波段,只要其他波段没有进来,就一直保持这个80m波段,并一直保持通联状态。
2)短波的自动识别和手动打开功能。
3)输入功率和输出功率显示,采用数字和进度条方式。
4)天线发射功率和反射功率比值,采用数字显示。
5)整个系统的直流电压和电流显示,采用数字显示。
6)两个温度采集显示。
7)整个系统的供电效率显示。
8)整个系统的状态显示。
9)7波段天线端口设置。
10)电压电流等参数阈值设置。
11)输入功率和输出功率校准。
12)背光设置。
13)所有设置参数都是存储到eeprom里边,下次开机读取参数并显示。参数设置采用键盘和增量调节结合方式。
每个功能不详细说明了,这样搞得篇幅太长了。

DGUS界面如下
主界面


设置界面

数字键盘界面


实物如下



下面是分享了一段ADC校准这块。
  1. <b><font size="4" face="黑体">int adc_rawvals[NUMADCVALS];
  2. float adc_realvals[NUMADCVALS];

  3. void adc_calculate_raw_values()
  4. {
  5.         if(isAdcConvReady())
  6.         {
  7.                 for(int i=0; i<=UTEMP2; i++)
  8.                 {
  9.                         if(i == UFWDIN || i == UFWDFLT)
  10.                                 adc_rawvals[i] = ui16_Read_ADC_ConvertedPeakValue_noHold(i);
  11.                         else if(i == UREVANT)
  12.                                 adc_rawvals[i] = ui16_Read_ADC1_ConvertedValue(i);
  13.                         else
  14.                                 adc_rawvals[i] = ui16_Read_ADC1_ConvertedValueSmooth(i);
  15.                 }
  16.                 adc_rawvals[UFLTFWDPEAK] = ui16_Read_ADC_ConvertedPeakValue(UFWDFLT);
  17.                 adc_rawvals[UDRVFWDPEAK] = ui16_Read_ADC_ConvertedPeakValue(UFWDIN);

  18.                 adc_rawvals[UFWDANT] = ui16_Read_ADC_ConvertedPeakValue_noHold(UFWDANT);
  19.                 adc_rawvals[UANTFWDPEAK] = ui16_Read_ADC_ConvertedPeakValue(UFWDANT);
  20.         }

  21.         if(isADC3ConvReady())
  22.                 adc_rawvals[UREVFLT] = ui16_Read_ADC3_ConvertedValue();
  23. }

  24. void adc_calculate_real_values()
  25. {
  26.         // Calculate PS Voltage电压
  27.         // Spannungsteiler 390k : 10k
  28.         adc_realvals[UMESS] = (float)(adc_rawvals[UMESS] *(390+10)) / 10.0;
  29.         adc_realvals[UMESS] /= 1000.0;
  30.         if(adc_realvals[UMESS] < 4.0) adc_realvals[UMESS] = 0;

  31.         // Strommessung
  32.         // beim INA193A ist die Ausgangsspannung = 20 x Shutspannung
  33.         // bei einem Shunt von 1mOhm: Ushunt = Ilast * 0,001
  34.         // Umess = Ushunt * 20
  35.         // Umess = Ilast * 0,001 * 20 = Ilast * 0,02
  36.         // Ilast(=Ianzeige) = Umess[mV] / 20

  37.         // der Rohwert des INA193 kann einen 0-Offset von bis zu xxx (gemessen 49mV, 19mV usw)  haben电流
  38.         // dieser Offset ist bei richtigen Messungen scheinbar nicht mehr vorhanden
  39.         if(adc_rawvals[IMESS] < 45) adc_rawvals[IMESS] = 0;        // alles unter xxx mV ignorieren (kan bei verschiedenen INAs variieren)
  40.         if(adc_realvals[UMESS] == 0) adc_rawvals[IMESS] = 0;// wenn keine Spannung da, dann zeige auch keinen Strom an

  41.         float R_SHUNT = shuntValue[pcfgdata->shuntR];        // mOhms
  42.         adc_realvals[IMESS] = (float)adc_rawvals[IMESS] / (20.0*R_SHUNT);

  43.         // Temperaturmessung
  44.         adc_realvals[UTEMP] = calc_temp(adc_rawvals[UTEMP]);
  45.         adc_realvals[UTEMP2] = calc_temp(adc_rawvals[UTEMP2]);

  46.         // ICOM Banderkennung
  47.         /*
  48.                 IC-7300: (Spannungen nach dem Vorteiler)
  49.                 < 2M .... 2,30
  50.                 2-4M .... 1,87
  51.                 4-8M .... 1,56
  52.                 8-11M ... 0
  53.                 11-15M .. 1,25
  54.                 15-22M .. 0,98
  55.                 22-30M .. 0,68
  56.                 > 30M ... 0,58
  57.         */
  58.         if(adc_rawvals[UBAND] < 300) adc_realvals[UBAND] = 30;
  59.         else if(adc_rawvals[UBAND] < 630) adc_realvals[UBAND] = 6;
  60.         else if(adc_rawvals[UBAND] < 830) adc_realvals[UBAND] = 1210;
  61.         else if(adc_rawvals[UBAND] < 1115) adc_realvals[UBAND] = 1715;
  62.         else if(adc_rawvals[UBAND] < 1405) adc_realvals[UBAND] = 20;
  63.         else if(adc_rawvals[UBAND] < 1715) adc_realvals[UBAND] = 6040;
  64.         else if(adc_rawvals[UBAND] < 2085) adc_realvals[UBAND] = 80;
  65.         else adc_realvals[UBAND] = 160;

  66.         calc_PwrBridges();        // die Ergebnisse stehen in dent_pwrswr Strukturen

  67.         // nicht gemessene sondern berechnete Werte
  68.         adc_realvals[CALC_POWER] = adc_realvals[IMESS] * adc_realvals[UMESS];

  69.         if(adc_realvals[CALC_POWER] < 0.01)
  70.                 adc_realvals[CALC_EFF] = 0;
  71.         else
  72.                 adc_realvals[CALC_EFF] = 100 * pwrswr_antenna.fwd_watt / adc_realvals[CALC_POWER];

  73.         if(adc_realvals[CALC_EFF] > 100.0) adc_realvals[CALC_EFF] = 100.0;

  74. }

  75. void adc_calculate_values()
  76. {
  77.         adc_calculate_raw_values();
  78.         adc_calculate_real_values();
  79. }</font></b>
复制代码
上面的只是参考,校准这块采用最小值和最大值方式,采用线性插值的方式,多段拟合(一次多项式)。
这是界面的校准

这块是外接一个AD8317模块,1 MHz至10 GHz、50 dB对数检波器/控制器,频率相当高,在无线电领域应用非常广泛。
我们点击校准按钮,控制板接入AD8317模块,开始自动校准了,实现电压到无线电功率的转换,校准方式就是上面说的。
下面是简单的资料
那个arduino的原理图和代码,迪文工程




这是客户在测试短波识别的视频


这是我在测试短波的输入功率的模拟视频










本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

8

主题

25

回帖

223

积分

中级会员

Rank: 3Rank: 3

积分
223
发表于 2024-4-22 13:31:44 | 显示全部楼层
感谢分析!T5L_OS核代码能提供么?
回复

使用道具 举报

0

主题

487

回帖

3035

积分

论坛元老

Rank: 8Rank: 8

积分
3035
发表于 2024-4-22 13:39:18 | 显示全部楼层
是需要出厂的OS核吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-5-13 07:23 , Processed in 0.095559 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表