单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4480|回复: 8
收起左侧

单片机可见光通信设计源码与论文-基于大功率白光LED与MSP430

[复制链接]
菜鸟学生 发表于 2018-2-27 18:50 | 显示全部楼层 |阅读模式
这是一个基于msp430f149做的可见光通信系统资料包含完整的程序源码与设计论文,下面是内容预览:

基于大功率白光LED的可见光通信
摘要
本系统设计以 TI 公司的 MSP430F149 为主控芯片,完成了基于大功率白光 LED 的可见光 通信,实现了对两路语音信号、m 序列信号和单音信号的无失真传输。该通信装置由发送装 置和接收装置两部分组成。发送装置和接收装置由放大电路、音频锁相环 LM567、光电调制 电路、电源电路等模块构成,分别对信号进行放大、调制、解调与供电等,从而实现了可见 光对信号的传输。同时使用 MSP430F149 为主控器,完成对发射装置的温度监测、电压采集及 信号传输记录等功能。通过测试,本设计系统性能良好,各项指标均能较好地完成设计要求 同时 MSP430 系列单片机功耗低,满足当前低碳经济的发展理念。

Abstract
This system designs with MSP430F149 as main control chip of TI company, completed the visible light communication, based on high power white LED for two way voice signal and m sequence signal without distortion of the transmissionThe communication device consists of two parts, the transmitting and receiving deviceSending device and receiving  device  by  amplifying  circuit,  audio  phase-locked  loop  LM567, electro-optical modulation circuit, power circuit, such as modules, respectively for signal amplification, modulation and demodulation, and electricity, etc, thus realize signal through visible light transmissionAt the same time use MSP430F149 complete temperature detection of device, voltage acquisition and signal transmission record, etcThrough testing, this design system performance is good, all the indexes can be well complete design requirements for MSP430 series MCU low power consumption at the same time, satisfy the current low carbon economy development concept

目录
摘要 1
1 、系统方案设计思路 3
2 、方案设计与选择 4
21 CPU 的选择  4
22 锁相环的选择  4
23 光调制中放大器件的选择  4
24 显示模块的选择  4
3、系统方案详细设计 5
31 可见光通信装置电源模块  5
32 可见光通信装置发送端  5
321 信号调制电路  5
3 3 可见光通信装置接收端  6
331 信号解调放大电路  6
4、系统软件设计 8
5、测试结果与分析 8
51 仪器设备  8
52 各模块测试  9
521 语音传输模块测试  9
522 模拟信号传输测试  9
523 LED 照明模块测试  9
524 电源模块测试  10
6、总结 10
参考文献 11

1 、系统方案设计思路

本文所设计的可见光通信装置以 MSP430F149 为控制核心,由发送端、接收端两部分组成。 使用 MSP430F149 产生 m 序列并完成对装置的温度检测、电压采集及信号传输记录等功能,
并且实时在 12864 上显示。 发送端由主控芯片组成的最小系统、前置放大电路、音频调制电路、光调制电路、白光
LED 发射灯、显示模块、24V 电源等模块组成。该部分实现了对两路语音信号和 m 序列的调制 并通过可见光发射给接收端的任务。
接收端由放大滤波电路、音频信号功率放大电路、整形电路、音频解调电路、PIIN 光电 二极管等模块组成。该部分实现了来自发送端信号的解调、放大和语音输出,以及完成来自 m 序列发生器的波形输出的任务。
总系统框图如下:
0.jpg 0.jpg
2 、方案设计与选择

2.1 CPU 的选择
方案一:采用 51 系列单片机。采用现在比较通用的 51 系列单片机作为整个系统方案的 主控 CPU。51 系列单片机应用比较广泛,各种技术都比较成熟,但此系列单片机是 8 位机, 处理速度不是很快,I/O 端口较少,资源不够充足。
方案二:采用 MSP430 系列单片机。TI 公司的 MSP430 系列单片机是一种 16 位超低功耗 的混合信号处理器,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7 种源操作数 寻址、4 种目的操作数寻址)、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以 及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度;接口 方便开发;而且 MSP430 系列单片机的中断源较多,并且可以任意嵌套,使用时灵活方便, 满足当前低碳经济的要求。
综合以上方案,我们采用 TI 公司的 MSP430 系列单片机,选择方案二。

2.2 锁相环的选择

方案一:采用 CD4046 连成语音信号的收发电路。CD4046 是通用的 CMOS 锁相环集成电路, 采用 16 脚双列直插式封装,其特点是电源电压范围宽(为 3V—18V),输入阻抗高(约为
100MΩ),动态功耗小,在中心频率 f0 为 10KHz 下功耗仅为 600 μW,属微功耗器件。 方案二:采用 LM567 连成语音信号的收发电路。LM567 是一块锁相环集成电路,采用双列
直插式封装。其静态电流 8mA,最高工作频率 500KHz,其中心工作频率 f0 由 5 脚和 6 脚外
接定时电阻电容决定。其计算公式 f0   1 / (1.1RC ) 。另外 LM567 还具有抗光电干扰性能好, 接收角度宽、低功耗、灵敏度高的优点。
综合以上方案,我们采用 LM567,选择方案二。

2.3 光调制中放大器件的选择
方案一:采用 LM317 线性放大器件。LM317 除了有稳压功能外还有线性放大功能,它的 输出电压范围是 1.2V 至 37V,负载电流最大为 1.5A。但是 LM317 效率不高,调制频率不够高 且发热相当严重,致使放大效果及其不佳。
方案二:采用 TIP41C 器件。TIP141C 放大倍数达到 65,频率转换达到 3MHZ,不仅能使音 频信号放大还能放大功率。 与 LM317 做放大器件相比来说,性价比高。
综合以上方案,我们采用 TIP41C 器件,选择方案二。

2.4 显示模块的选择

方案一:采用 1602 液晶屏显示。液晶显示屏具有微耗低,但是 1602 没有字库只能显示 字母和数字,且屏幕过小以致于显示的内容太少,不能同步显示大容量的信息,若多次切换 显示会导致时间浪费。
方案二:采用带字库的 12864 液晶屏显示。12864 显示分辨率为 128×64,内置 8192 个 16*16

点汉字,和 128 个 16*8 点 ASCII 字符集.利用该模块灵活的接口方式和简单、方便的操作指 令,可构成全中文人机交互图形界面。不仅可以显示数字、字母和汉字还能显示图形,且低 功耗是其一大特点。
综合以上方案,我们采用 12864,选择方案二。

3、系统方案详细设计
3.1 可见光通信装置电源模块
电源电路的任务是为可见光通信装置提供电压。该模块将 220V 的市电转化为 24V 的输出 电压和 1A 的输出电流。电源电路如下:
0.jpg
工作原理:220V 市电经整流桥将交流电信号转化为直流电信号,经电容滤波减少信号波 动,LM317 的稳压范围是 1.25~37V,最终输出 24V 电压,电流为 1A。
3.2 可见光通信装置发送端
3.2.1 信号调制电路
信号调制电路的有两个任务,一是接收语音信号及 M 序列信号,并将其转化为电信号, 二是通过光调制电路进行信号调制,由白光 LED 发光管将信号发送给接收端的 PIN 光电二极 管。信号调制电路原理图如下:
0.jpg
图 3 信号调制电路
电路工作原理:A 路语音信号从 A singnal 端口,经 RP1 衰减由 Ca1 缓冲经 Qa1、Qa2 放 大后从 C 端输入与其他两路信号混合。B 路语音信号从 B singnal 端口输入,经 RP2 衰减后 由 Cb1、Qb1 缓冲放大后从 Qb1 的发射极取出后经压控振荡器,D1、D2 对信号进行限幅。然 后进入 LM567 可对 PLL 的频率进行调制,当音频信号处于上升段时,调制频率受压控振荡器
(LM567 的 2 脚)控制,在压控振荡器中心工作频率的基础上增加,当音频信号处于下降段 时,调制频率受压控振荡器(LM567 的 2 脚)控制,在压控振荡器中心频率的基础上降低, 从而实现频率调制。由于采用了锁相环压控振荡器,所以电路的调制线性较好。调制后的信 号经 LM567 的 5 脚出,三路信号在 C 端混合,由光调制电路后经 Q2 放大后推动 LED 发送可见 光。m 序列信号由 MSP430F149 输入,其他部分与 B 路语音信号相同,在接收端由示波器显示 信息。

3. 3 可见光通信装置接收端
3.3.1 信号解调放大电路
信号解调电路的任务是利用 PIN 光电二极管接收来自发送端的可见光线,经音频锁相环 解调和 LM386 放大功率后语音信号由扬声器发出,m 序列信号则由示波器显示。信号解调放 大电路如下:
0.jpg
图4.1  B路信号和 m 序列信号接收电路

0.jpg
图 4.2   A路信号接收电路

电路工作原理:可见光光信号由 LED2 接收,经放大滤波电路后,A 路语音信号经单 管放大电路放大,由 LM386 进行功率放大后由扬声器发声,而 B 路语音信号和 M 序列信号则 进入 LM567 解调,信号解调后,B 路语音信号由 LM386 放大功率又扬声器发,对于 M 序列信 号则由示波器显示信号。

4、系统软件设计
TI 公司研发的 430 系列单片机功耗极低,应用 MSP430F149 可实现通信装置功能的实现。 系统软件设计的整体思路:使用 MSP430F149 在发送端产生 M 序列,通过 LM567 和光调制电路 由发光管发送,在接收端由示波器观测,同时采集发光管 LED 的温度,若当前温度过高不利 于通信则报警提示,应用芯片自带的 ADC12 采集 LED 两端的电压,通过按键可调当前时间, 并且记录发送的语音信息的时间,以上信息通过 12864 显示,另外在液晶屏上也可显示本队 详细信息。
0.jpg 0.jpg 0.jpg 0.jpg

5.2 各模块测试
5.2.1 语音传输模块测试 为了在调试电路的过程中更方便的调整电路参数,在测试语音信号之前先进行音频范围
内不同频率的正弦波的测试。然后,我们分别通过 MP3、麦克向输入端输入声音信号,通过 扬声器实际观测其失真情况。
在使用正弦波测试时,首先使用函数信号发生器向发送端输入不同频率的正弦波信号,然 后用示波器检测接收端分别接收到的波形,检测输出电压的幅值,发现当发射端输入语音信 号为 300Hz、1000Hz、8000Hz 单音信号时,在 8Ω 电阻负载上,接收装置的输出电压有效值 大于 0.4V,并且在更高的频率上也能达到 0.4V。不改变电路原有状态,减小发射端输入信号 的幅度至 0V,采用低频毫伏表测量此时接收端输出端噪声电压,读数基本维持在 0V。检测结 果表明输出电压能够超过题目所要求的电压。将它与输入波形进行比对,发现波形无明显失 真。
在使用MP3、麦克向输入端输入声音信号时,通过扬声器实际体验该设备的性能指标,声 音清晰度良好,基本无失真。通过对MP3输出波形和接收端输出波形对比,也没有明显失真之 处。
0.jpg
5.2.2 模拟信号传输测试

在 A 路传输 2000Hz、B 路传输 8000Hz 单音信号时,在 8Ω负载上,A 路、B 路的输出电 压有效值均不小于 0.4V。A 路、B 路分别输入 1000Hz 频率以下的方波、锯齿波时,在接收装 置的 8Ω负载上,A 路、B 路的输出电压有效值均不小于 0.4V,甚至在更低频率下,也能保持 不小于 0.4V 的水平。
将 m 序列信号加于 A 路的输入端,用示波器观察发端设备的输入波形以及收端设备的输 出波形,没有出现无明显的码间串扰。

5.2.3 LED 照明模块测试
在 10W 白光 LED 只用于照明的情况下,满足 I2=1±0.01A 的前提下,由 24 V 电源的供电 电流 I1 约为 1.12A

5.2.4 电源模块测试
接通电路后,在测试点处用万用表对电源电压和电流进行测量,两者均满足题目要求, 且无明显波动,非常稳定。

6、总结
本系统设计以 TI 公司的 MSP430F149 为主控芯片,完成了基于大功率白光 LED 的可见光 通信,实现了对两路语音信号和 M 序列的无失真传输,并且应用该芯片采集 LED 发光管的温 度和其两端的电压,并且记录发送信息等。在设计中,我们既考虑了系统的功耗,又充分发 挥了系统中芯片的高性能。通过测试,系统不但完成了题目要求,而且还扩展了相应功能。 经过几天不断的改进程序和电路,一点点的攻克难关,最终很好的完成了设计,在比赛过程 中,首先要感谢指导老师对我们的帮助和指导,也要感谢我们的队员,有了他们,我们才能 更好的完成设计。对自身能力来说也是一种质的提高,也充分体现了团队合作的重要性。在 以后的学习和生活中我们还需继续努力,不断学习,不断改善自己,以创造更好的成绩。

单片机源程序如下:

  1. #include "control.h"
  2. #include "key.h"
  3. #include "LCD12864.h"
  4. #include "ADC12.h"
  5. #include "DS18B20.h"

  6. unsigned  char mark=1;
  7. extern    unsigned  char flag;
  8. unsigned  char     sign=0;


  9. void  control()
  10. {           
  11.        Settime();  
  12.        ADC12CTL0 |=ENC;
  13.        ADC12CTL0 |=ADC12SC;
  14.       while(1)  
  15.      {               
  16.           wait();                                    
  17.           system_info1();               
  18.           if(flag==0)
  19.             system_info2();   
  20.          if(mark==0&&flag==0)
  21.             system_info2();                    
  22.      }

  23. }
  24.       
  25. void  wait()
  26. {
  27.      
  28.        while(1)   
  29.      {   
  30.             Key4Scan();
  31.            if(key!=0)
  32.            {                 
  33.                 flag=0;        
  34.                LCD_clear();        
  35.                 break;           
  36.            }
  37.      }
  38. }
  39. void system_info1()
  40. {   
  41.        LCD_write_str(2,1,"系统信息");
  42.        LCD_write_str(0,2,"1.电压:");     
  43.        LCD_write_str(0,3,"2.电流:");  
  44.        LCD_write_str(0,4,"3.LED");
  45.        LCD_write_str(4,3,"1A");                 
  46.        LCD_write_str(3,4,"温度:");            
  47.      while(1)
  48.      {  
  49.          sign=1;      
  50.          LCD_write_str(4,2,tempda);      
  51.          LCD_show_T();
  52.          ADC12CTL0 |=ENC;
  53.          ADC12CTL0 |=ADC12SC;      
  54.          Key4Scan();                                    
  55.          if(key==3)
  56.          {      flag=0;        
  57.                 LCD_clear();               
  58.                 sign=0;
  59.                 break;      
  60.          }      
  61.          else if(key==4)
  62.           {      sign=0;         
  63.                  flag=1;                           
  64.                  break;           
  65.          }               
  66.     }
  67. }

  68. void system_info2()
  69. {     
  70.        mark=1;
  71.        LCD_clear();
  72.        LCD_write_str(2,1,"系统信息");
  73.        LCD_write_str(0,2,"1.系统时间");   
  74.        LCD_write_str(0,3,"2.序列信息");
  75.        LCD_write_str(0,4,"3.音频传送记录");   
  76.        while(1)   
  77.        {   
  78.             Key4Scan();
  79.            if(key==1)
  80.             {   mark=0;           
  81.                 flag=0;                    
  82.                 LCD_clear();      
  83.                 timeshow();                              
  84.             }      
  85.          else if(key==2)
  86.            {   
  87.                mark=0;            
  88.                flag=0;
  89.                LCD_clear();
  90.                LCD_write_str(1,1,"m");
  91.                LCD_write_str(2,1,"序列为:");                                    
  92.                LCD_write_str(0,2,"000111101011001");            
  93.            }      
  94.          else  if(key==3)
  95.             {   
  96.                 mark=0;
  97.                 flag=0;
  98. ……………………

  99. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

0.png

所有资料51hei提供下载:
论文: 2014省赛A题论文.pdf (337.07 KB, 下载次数: 57)
回复

使用道具 举报

无效楼层,该帖已经被删除
无效楼层,该帖已经被删除
18907733004 发表于 2018-4-12 09:55 | 显示全部楼层
有完整原理图吗
回复

使用道具 举报

guochaoxxl 发表于 2018-5-8 06:46 | 显示全部楼层
感觉原理图不全阿
回复

使用道具 举报

adslvcd 发表于 2018-5-8 22:30 | 显示全部楼层
这要用光纤吗
回复

使用道具 举报

17809267337 发表于 2018-5-10 16:19 | 显示全部楼层
这个程序应该是两部分吧?这个只是接收部分的,发送部分呢?
回复

使用道具 举报

tacorob2009 发表于 2018-5-12 14:13 | 显示全部楼层
有完整原理图吗
回复

使用道具 举报

175852 发表于 2019-4-12 19:57 | 显示全部楼层
嗯~~~大佬
回复

使用道具 举报

zslp2019 发表于 2019-11-11 00:22 | 显示全部楼层
非常感谢分享。
回复

使用道具 举报

f556 发表于 2019-11-19 09:23 | 显示全部楼层
看见“白光”以为是烙铁,以为是HAKKO
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|单片机论坛 |51黑电子论坛技术交流 QQ 管理员QQ:125739409;技术交流QQ群636986012

Powered by 单片机教程网

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