ImageVerifierCode 换一换
格式:DOC , 页数:16 ,大小:826.03KB ,
资源ID:875691      下载积分:10 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-875691.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于GSM的嵌入式无线通信系统.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

基于GSM的嵌入式无线通信系统.doc

1、GSM无线数据通信系统赵沫(湖南城市学院通信与电子工程学院电子科学与技术专业,湖南益阳,41300)1、设计目的EDA技术及应用课程设计是学习EDA技术及应用课程之后的实践教学环节。其目的是训练学生综合运用学过的EDA技术及应用的基础知识,通过解决比较简单的实际问题巩固和加深在EDA技术及应用课程中所学的理论知识和实验技能。独立完成查找资料,选择方案,设计电路,安装调试,分析结果,撰写报告等工作。使学生进一步理解所学本课程的内容,初步掌握模拟电子电路设计的一般方法步骤,通过理论联系实际提高和培养学生。并理论联系实际提高和培养学生的分析、解决实际问题的能力,创新能力及动手能力,为后续课程的学习、

2、毕业设计、毕业后的工作打下基础。2、设计的方案论证122.1 软件介绍Max+plus是Altera公司提供的FPGA/CPLD开发集成环境,Altera是世界上最大可编程逻辑器件的供应商之一。Max+plus界面友好,使用便捷,被誉为业界最易用易学的EDA软件。在Max+plus上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。Max+plus开发系统的特点:(1)、开放的界面,Max+plus支持与Cadence,Exemplarlogic,Mentor Graphics,Synplict

3、y,Viewlogic和其它公司所提供的EDA工具接口。(2)、与结构无关,Max+plus系统的核心Complier支持Altera公司的FLEX10K、FLEX8000、FLEX6000、MAX9000、MAX7000、MAX5000和Classic可编程逻辑器件,提供了世界上唯一真正与结构无关的可编程逻辑设计环境。(3)、完全集成化,Max+plus的设计输入、处理与较验功能全部集成在统一的开发环境下,这样可以加快动态调试、缩短开发周期。(4)、丰富的设计库,Max+plus提供丰富的库单元供设计者调用,其中包括74系列的全部器件和多种特殊的逻辑功能(Macro-Function)以及新

4、型的参数化的兆功能(Mage-Function)。(5)、模块化工具,设计人员可以从各种设计输入、处理和较验选项中进行选择从而使设计环境用户化。(6)、硬件描述语言(HDL),Max+plus软件支持各种HDL设计输入选项,包括VHDL、Verilog HDL和Altera自己的硬件描述语言AHDL。(7)、Opencore特征,Max+plus软件具有开放核的特点,允许设计人员添加自己认为有价值的宏函数。2.2 设计方案2.2.1实现的功能(1) 显示系统当前运行状态,由VGA接口输出,在液晶屏上以640*480分辨率显示;(2) 实时检测输入设备,对GSM模块进行操控,输入设备采用PS/2

5、接口键盘;(3) 通过RS232接口连接GSM模块,采用UART标准进行全双工通信,发送AT命令控制GSM模块,GSM模块返回信息通过UART由系统接收并做出相应处理;(4) 支持GSM拨号功能;(5) 支持短信收发功能,并可实时查阅、删除已有短信;(6) 编辑模式可通过BackSpace键删除误输入;(7) 支持来电号码显示,并周期性发出来电铃声;(8) 支持新短信显示提示,并发出一声短信提示音;(9) 支持中文菜单显示,通过上下箭头按键选择不同菜单项;(10) 界面支持字体变色、动态滚动效果。2.2.2系统框图FPGA主控制器液晶显示器PS/2接口键盘GSM模块VGAPS/2UART图1

6、GSM系统框图由上图可见,主控制器通过3个接口分别连接了3个硬件,对应不同接口应该独立地进行处理,所以必须对主控制器进行模块划分。3、整体设计方案模块1:分频 功能描述:将50MHz时钟源进行分频,提供给VGA模块(25MHz)和UART模块,其中UART模块为波特率可调,通过改变CNT_RS232的值实现不同的波特率。 具体代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FREQUENCY IS GENERIC (CNT_RS232:INTEGER:=163; CNT_VGA: INTEGER:=1);PORT( CLK:IN STD_L

7、OGIC; CLK_RS232:OUT STD_LOGIC; CLK_VGA:OUT STD_LOGIC);END ENTITY;ARCHITECTURE FREQUENCY_DIV OF FREQUENCY ISBEGINPROCESS (CLK)VARIABLE REG_RS232:STD_LOGIC :=0; VARIABLE REG_VGA:STD_LOGIC :=0;VARIABLE TEMP_RS232:INTEGER RANGE 0 TO CNT_RS232; VARIABLE TEMP_VGA:INTEGER RANGE 0 TO CNT_VGA;BEGINIF (CLKEVE

8、NT AND CLK=1) THENTEMP_RS232:=TEMP_RS232+1; TEMP_VGA:=TEMP_VGA+1;IF (TEMP_RS232=CNT_RS232) THEN REG_RS232:=NOT REG_RS232; TEMP_RS232:=0;CLK_RS232=REG_RS232;END IF; IF (TEMP_VGA=CNT_VGA) THENREG_VGA:=NOT REG_VGA; TEMP_VGA:=0;CLK_VGA=REG_VGA;END IF; END IF;END PROCESS;END ARCHITECTURE; 将以上程序写入MAX+pluw

9、e2中进行编译仿真,可得如下结果。图2 frequency元件图图3 对 frequency程序的仿真结果图模块2:PS/2 Keyboard 功能描述:接收键盘的时钟源PS2_CLK,并进行平滑处理,接收完一个按键相应输出按键的通码MakeCode和触发信号TRIG,另外输出平滑后的键盘时钟信号PS2_CLKsm,为接收模块提供同步时钟。 具体代码:library ieee;use ieee.std_logic_1164.all;entity PS2keyboard is port(CLK,PS2_CLK,PS2_DATA:in std_logic; TRIG:out std_logic;

10、MAKE_CODE:out std_logic_vector(7 downto 0); PS2_CLKsm: out std_logic);end entity;architecture code of PS2keyboard istype state_type is(S1,S2);type cache_type is array(2 downto 0) of std_logic_vector(7 downto 0);signal smooth_ps2_clk:std_logic;beginsmooth:process(CLK)variable cnt:integer range 0 to 7

11、;variable scan:std_logic_vector(7 downto 0);beginif falling_edge(CLK) thenscan(cnt):=PS2_CLK;if cnt=7 then cnt:=0;else cnt:=cnt+1;end if;if scan=11111111 then smooth_ps2_clk=1;elsif scan=00000000 then smooth_ps2_clk=0;end if;end if;end process smooth;receive:process(smooth_ps2_clk)variable cnt:integ

12、er range 0 to 10;variable count:integer range 0 to 2;variable pstate:state_type;variable cache:cache_type;variable reg:std_logic_vector(10 downto 0);beginif falling_edge(smooth_ps2_clk) thenreg(cnt):=PS2_DATA;if cnt=10 then cnt:=0;if count=1 and reg(8 downto 1)/=XF0 then count:=0;end if;cache(count)

13、:=reg(8 downto 1 ); if count=0 thencount:=count+1;MAKE_CODE=cache(0);TRIG=1;elsif count=2 then count:=0;MAKE_CODE=cache(0);TRIG=0;else count:=count+1;TRIG=0;MAKE_CODE=cache(0);end if;else cnt:=cnt+1; end if;end if;end process receive;PS2_CLKsm txd temp:=DATA_IN;txd txdtxdsp_state:=S1;end case;end if

14、;end process send;receive:process(CLK_UART) variable rp_state:rece_state; variable reg:std_logic_vector(7 downto 0); variable cnt:integer range 0 to 16; variable count:integer range 0 to 8; begin if CLK_UARTevent and CLK_UART=1 then case rp_state iswhen R0=RECE_MARK0);if RXD=0 thencnt:=cnt+1;if cnt=

15、8 then rp_state:=R1;end if;else cnt:=0;end if;when R1=cnt:=cnt+1;if cnt=16 then cnt:=0;end if;if cnt=8 thenreg:=RXD®(7 downto 1);count:=count+1;if count=8 then count:=0;cnt:=0;rp_state:=R2;end if;end if;when R2=DATA_OUT=reg(7 downto 0);RECE_MARKrp_state:=R0;end case; end if;end process receive;en

16、d architecture; 将以上程序写入MAX+pluwe2中进行编译仿真,可得如下结果。图6 uart_withoutParity元件图图7对uart_withoutParity程序仿真图模块4 :VGA接口 VGA模块由3个子模块组成,分别是CONTENT、VGA、VGA_DIV,其中VGA_DIV模块将显示器分割成20*15个小块,VGA模块输出信号至显示器,CONTENT模块包含了所要显示的内容,还包括了键盘按键的判断、UART的缓存数据,还是整个系统主要的状态控制器。将这3个模块用component语句进行例化,生成VGA_interface模块,再在顶层的Block Diag

17、ram文件进行调用,减少了顶层文件连线的复杂性。 VGA的VHDL源代码如下:library ieee;use ieee.std_logic_1164.all;entity VGA isport(CLK_VGA:in std_logic;HS,VS:out std_logic;RGB:out std_logic_vector (2 downto 0);RGB_DATA:in std_logic_vector (2 downto 0);RGB_H:inout std_logic;RGB_V:inout std_logic);end entity;architecture VGA_DIS of V

18、GA issignal h_cnt:integer range 0 to 800 :=0;signal v_cnt:integer range 0 to 525 :=0;beginp1:process (CLK_VGA)beginif rising_edge(CLK_VGA) then if h_cnt=799 then h_cnt=0;if v_cnt=524 then v_cnt=0;else v_cnt36 and v_cnt=516) then RGB_V=not RGB_V;else null;end if; end if;else h_cnt151 and h_cnt=791) t

19、hen RGB_H=8 and h_cnt=103) then HS=0;else HS=2 and v_cnt=3) then VS=0;else VS=37 and v_cnt=152 and h_cnt=791) then RGB=RGB_DATA;else RGB=000;end if;else null;end if;else null;end if;end process p3;end;VGA_DIV的VHDL源代码如下:library ieee;use ieee.std_logic_1164.all;entity VGA_DIV isport(CLK:in std_logic;R

20、GB_H,RGB_V:in std_logic;x:inout integer range 0 to 16 :=0;y:inout integer range 0 to 16 :=0;div_x:inout integer range 0 to 19 :=0;div_y:inout integer range 0 to 14 :=0);end entity;architecture VGA_CON of VGA_DIV issignal v_cnt:integer range 0 to 240 :=0;signal h_cnt:integer range 0 to 320 :=0;begin

21、cnt1:process(RGB_H) beginif rising_edge (RGB_H) then h_cnt=h_cnt+1;x=x+1; if h_cnt=319 then h_cnt=0;else null;end if;if (h_cnt+1) mod 16)=0) then div_x=div_x+1; x=0; if (div_x=19) then div_x=0; else null;end if; else null;end if;end if;end process cnt1;cnt2:process(RGB_V)begin if rising_edge (RGB_V)

22、 thenv_cnt=v_cnt+1;y=y+1;if v_cnt=239 then v_cnt=0;else null;end if;if (v_cnt+1) mod 16)=0) then div_y=div_y+1; y=0;if (div_y=14) then div_yX00000100028002800440044008200FE0101010102008701C0000000000000000,66=X00001FE008100810081008200FC008200810081008101FE00000000000000000,67=X000007C00820101010001

23、0001000100010001010082007C00000000000000000,beginprocess (clk)variable color:std_logic_vector (2 downto 0):=000; variable cnt:integer range 0 to 10000000 :=0;beginif rising_edge(clk) thenif cnt=10000000 then cnt:=0;if color=111 then color:=001;else color:=color+1;end if;else cnt:=cnt+1;end if;if pix

24、_all(data(DIV_Y)(DIV_X)(Y*16+X)=0 then RGB_DATA=000;elseif invert_data(DIV_Y)(DIV_X)=1 then RGB_DATA=color; else RGB_DATA=0&pix_all(data(DIV_Y)(DIV_X)(Y*16+X)&1; end if;end if;end if;end process;end architecture;分别对 VGA、VGA_DIV、CONTENT的源程序进行编译仿真得到其原理图。图8VGA原理图图9 对VGA源程序的仿真结果图图10 得到的VGA_DIV、CONTENT原理

25、图模块5:整个系统图11整个GSM通讯机原理图4、设计总结通过这次EDA技术及应用课程设计,加强了我们动手能力,提高了我们的思考和解决问题的思维。此次设计我们选用的是MAX+plusII软件,在整个设计过程中整个小组的同学团结一致和互帮互助,遇到了很多问题,有时心里想着这样的接法可以行得通,但实际进行运行仿真时,总是实现不了,但最终通过我们自己的努力解决了这些问题,我们受益匪浅。做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多

26、的认识。平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。而且还可以记住很多东西,比如一些引脚的初始化过程,通过动手实践让我们对各个元件映象深刻。认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。所以这个期末测试之后的课程设计对我们的作用是非常大的。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。同时,我也学到了很多课内学不到的东西,比如独立思考解决问题,出现

27、差错的随机应变,和与人合作共同提高。在这次数字电子课程设计过程中,我们学会使用MAX+plusII软件设计电路并运行仿真,让我们的动手能力得到很大的提高,增加了我们的学习兴趣。参考文献1 江国强.EDA技术与应用(M).电子工业出版社,2010.20(3):36-39 .2 赵建东,陈小乐.基于Internet的智能家庭网络控制器的实现J.电子技术应用, 2002,34(12) :23-25.3 李炳宇,萧蕴诗,李永东.AT89C51单片机在多层楼宇对讲系统中的应用J.自动化与仪表,2001,38(04):23-25. 4 李强华,张根宝,段力基于单片机控制的楼宇对讲系统的设计J.电气应用,2007,12(01):04-06.5 江国强.EDA技术与应用(第3版)2010,4(11):10-22.6 吴庆元,卢益民.智能小区系统通信协议的设计J.通信技术,2003,19(7):98-99. 7 Philips. 80C51-based 8-Bit MicrocontrollersM.1994:36-45.8 李建忠.单片机原理及应用M.西安:西安电子科技大学出版,2002:63-78.9 张俊谟.单片机中级教程M.北京:北京航空航天大学出版,2000:36-45.15

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922