
基于光纤通信的简易有线电报机的实现.doc
139页作者简介】 秦 晓 (1986- ) 男,物理电子学院电子信息科学与技术专业2004级本科生侯德彬(1983- ) 男,物理电子学院电子信息科学与技术专业2003级本科生戚 贺(1987- ) 男,物理电子学院电子信息科学与技术专业,2005级本科生基于光纤通信的简易有线电报机的实现 晓 侯德彬 戚 贺(电子科技大学物理电子学院 610054)【摘要】 本文介绍了一种基于光纤通信的简易有线电报机的设计与实现发报机采用AT89S52单片机为中心控制器,对由两个按键输入的点、划信息进行编码,然后通过光端机调制成光强信号发送;收报机接收解调,再用AT89S52进行译码,其间对点、划信息进行声光显示,并在液晶显示器上显示所输入的数字、字母以及汉字关键词】 AT89S52 电文编译码 光纤通信 液晶显示Realization of telegraph based on optical communicationQIN Xiao HOU De-bin QI He (School of Physical Electronics of UESTC Chengdu 610054)Abstract A design and realization of telegraph based on the optical communication methods is introduced in this paper. The 8-bit microcontroller AT89S52 is used as the central controller of the transmitter, which is responsible for encoding the dot and hyphen information input through buttons, another AT89S52 is used in the receiver to decode these information and display it on the LCD. An optical fiber with correspondent interface is used to connect the transmitter and receiver.Key words AT89S52 Telegraph encoding/decoding Optical communication LCD1 引言 本文的提出基于2006年电子科技大学“亿利达”杯电子设计大赛,题目要求为:制作一个莫尔斯电报的收发机,点、划信息采用两个按键分别输入,并采用声和光的方式进行显示,其中声音可以用开关进行控制。
载波频率不小于100kHz制作一个莫尔斯电报的收发机,要求能够正确解调出点、划信息,并采用声和光的方式进行显示由上述发、收报机构成最简莫尔斯有线电报系统,要求收发距离大于10米系统能够输入和显示0至9的数字,并对数字进行自动编码和译码系统能够输入和显示汉字电报,并对电报自动编码和译码针对上述要求,我们提出了基于光纤通信的以单片机为控制单元的电报机的设计2 方案比较、设计与论证2.1 硬件部分2.1.1控制系统模块方案1 基于AT89S52单片机的电文编码译码系统, AT89S52是ATMEL公司生产的8位单片机,具有性能良好、成本低、可靠性高等特点, 在实际应用中取得了良好效果单片机外围电路简单,只需晶振与几个电容电阻即可让单片机开始工作 方案2 采用仪器公司(TI)的MSP430系列超低功耗微控制器作为系统控制微处理器,适于在便携式设备中延长电池寿命,芯片具有的强大的16位CPU、16位的寄存器及常数发生器,能够最大限度地提高代码的效率,在捕获模拟信号转换为数字值、然后处理数据用于显示或者传送到主系统等领域具有典型应用另在实时性和灵活性等性能上都有很大的提高由于AT89S52单片机可接24MHz晶振,一个指令周期为0.5uS。
相对本题目要求,该速度适合且其部有8K的Flash,对于该题目来说已经完全够用,MSP430F1610虽然比较高级,但AT89S52业已满足题目要求及发挥部分要求,且AT89S52价格较低,所以我们选择了方案12.1.2 调制,传输及解调模块方案1 将微控制器的串行输口输出的数字信号传给光端机,光端机把光信号调制成光脉冲信号,然后采用光纤通信,(光导纤维传送信息容量大,质量高,性强,抗电磁干扰和抗辐射性能好,整体性能良好,与传统电缆相比重量轻,占用空间少,但是价格比较昂贵)信号接收端经过解调处理,对微控制器输入数字信号,即完成调制、传输和解调过程方案2 利用压控函数发生器的调制解调电路,并利用8038压控振荡的功能,将数据信号第8脚扫描控制端,振荡频率随着数据0电平和1电平而改变以其制作的FSK调制电路,输出的正弦波的寄生调幅成分极小,其性能远比滤波法优越 本方案以电线为传输导线,性能不若光纤通信虽然光纤通信的成本较高,但考虑到其良好的性能和具有一定的创新意识,权衡考虑,我们决定采用方案12.1.3 键盘及显示模块 方案1 显示部分采用数码管(LED)动态显示,电路简单,但微控制器每次都要循环扫描,才能同时稳定显示,给程序设计带来麻烦。
若结合静态显示,需要一些专用的芯片(8279)或利用单片机的串行口采用船并转换芯片(如74LS164),在增加了硬件的复杂度,即系统开发成本的前提下,却不能显示字母和汉字,对发挥部分造成了限制键盘输入采用点、划输入,另加一确认键,即仅提供一小键盘输入 方案2 采用液晶显示器(LCD)显示,虽然成本也较高,相对其能显示汉字和所有的字母的功能它具有体积小、功耗低、清晰度好等优点键盘输入采用88矩阵键盘,可以完成输入字母\数字,字符的任务 为了顺利完成题目的要求,我们选择方案22.2 软件部分方案1 采用汇编语言对硬件可直接操作,生成代码小,人机对话效果好,易于实现单片机的简单操作但实现复杂数学运算较困难方案2 采用C语言C语言直接操作硬件效果不佳,生成代码较长,编译软件不能很好的按我们预期的编译,不易找出错误但C语言很容易实现各种复杂算法由于该题目并不涉及到复杂的数学运算,故汇编语言和C语言并没有太大的优劣区分,根据我们的擅长我们选择方案1,采用汇编语言进行程序设计 3 系统方案的具体设计与实现3.1硬件部分3.1.1系统框图图1 总系统框图设定(The Diagram of System)以双AT89S52为控制核心, 并配以双键盘输入、液晶静态显示,使CPU有足够的时间做算法数据处理且可各自外接声光显示电路。
3.1.2 AT89S52单片机控制系统(编码发送及译码接收)图2 单片机基本外围电路(Basic Circuit of Microcontroller) AT89S52单片机可接24MHz晶振,一个指令周期为0.5uS,外围电路简单,开发方便3.1.3 矩阵键盘图3 88键盘字母、数字输入(8*8 keyboard circuit) 采用88键盘可完整输入A-Z,0-9,以及结束键另有输入点划信息的小键盘,当输入点划信息时,声光显示,在输入结束键后,液晶上显示所输入点信息代表的字母或数字;大键盘输入时,可直接输入数字或字母,点击结束键(由程序设定)后,可显示汉字3.1.4 调制解调图4 基于MC10116的调制电路(coding circuit based on MC10116)图5 基于MAX435CPD的解调电路(decoding circuit based on MAX435CPD)集成化的IC芯片MC10116和MAX435CPD分别实现了电信号和光信号之间的互相转换MC10116的输入是数字信号,根据输入的信号控制激光器的发光,从而实现了光强调制;相反,MAX435CPD解调出光强信号,并将其转换为对应的数字信号输出。
3.1.5 声光显示模块图6 蜂鸣器、二极管声光显示电路(Speaker and LED circuit)输入点或划时,单片机控制使蜂鸣器接收到不同时长的高电平,发出不同时长的声音以区分点划,检测到点时发光二极管D1亮,划时D2、D3、D4同时亮3.1.6 液晶显示模块采用点阵系列FYD12864-0402B型号的液晶模块,它包括了显示其本身及液晶的驱动电路,部包括了X地址计数器、Y地址计数器和显示数据随机存储器(RAM)等 ,地址计数器用来记录显示RAM中哪个地址处于可操作状态,显示RAM中则存放着要显示的容,这些容是由字模提取软件自动生成的模块提供了很方便的接口,我们只需要通过接口对驱动电路的部寄存器进行操作即可3.1.7完整的电路系统图7 发报机的电路原理图示(Schematic diagram of transmitter)图8 收报机的电路原理图示(Schematic diagram of receiver)3.2 软件部分3.2.1 程序流程图图9 程序流程图(flow chart)3.2.2 端口配置 图10 发报端微控制器接口图例(Pin allocation of transmitter)图11 收报端微控制器接口图例(Pin allocation of receiver)3.2.3算法实现由于莫尔斯代码由点,划构成,我们要实现的基本功能是发报机的数据和控制信号传到收报机并在LCD上显示点,划信息,在这里我们利用用串行口通信,由于点、划信息必须及时传输到收端,所以串行通信每次只能传输一个点划信息,所以我们利用八位数据中最低位的高(即00000001)来表示点信息(信息0),用00000010表示划信息(信息1),我们另加了确定键,表示代表字符的点、划信息输入完毕,应该显示其代表的字符,传输信息用00000100表示发报机在工作时不断扫描键盘,当键盘按下,单片机响应,将信号通过串行口串出,收报机不断检测串行通信是否完成,当接收完一帧,执行中断程序,进而对收到的电码进行解调,如果收到的是非结束信号(点或划)则在LCD上显示出点划信息;否则对收到的点划解码,找出其对应的字母或数字并显示在LCD上。
为了实现汉字的编码和显示,我们利用了LCD模块自带的汉字字库FYD12864-0402B型号的LCD带有固化的汉字字库,我们只需要向其写入相应的地址,对应的汉字即会显示在液晶上汉字地址是2BYTE的数据,由此,我们制作了一个大的键盘,包含A~Z的字母和0~9的数字,当检测到有键按下时,查出该键值对应的莫尔斯码,然后调用上面的程序将其发送出去;每收到一个字母或数字,收报机将其存放在一个2BYTE的缓存中的低4位并左移四位,当检测到显示汉字的命令时,将这2BYTE输出到LCD,使对应的汉字显示出来4 测试及结果:要求系统完成情况1、88键盘实现各种字符的输入,和控制键的设定小键盘实现点,横的输入键盘上41个功能键小键盘上3个键均可实现功能2、上位机串行口输出数据被下位机完整接收声光显示实现3、液晶(LCD)显示点划信息、数字、字母及汉字实现4、莫尔斯代码转换LCD显示代码实现5、蜂鸣器和LED显示灯实现6、其他开机后系统全部由键盘控制,实现全自动控制,完成上述所有功能 5 结论 通过测试,我们所设计的简易电报机能够出色的完成题目所要求的任务,回顾该题目的制作过程,我们认为该题目的难点在于软件的设。
