版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、教师批阅课 程 设 计 用 纸lpc2138芯片与pc机的串行通信设计 摘要:串口通信是一种广泛使用且实用的通信方式,介绍rs232串行通信的联结方式,研究利用c语言编程实现rs232串行通信的过程结合实际应用,在约定双方串行通信协议的基础上,运用c语言开发的串行通信软件,lpc2138芯片与pc机的串行数据通信。关键词:arm嵌入式系统、lpc2138芯片、rs232串行通信目录第1章 设计的目的和要求1.1设计的目的 31.2 设计要求 3第2章 方案论证2.1 设计方案 42.2 方案选择 4第3章 硬件电路设计3.1 设计思路 53.2 主电路设计 53.2.1 lpc2138芯片 5
2、3.2.2 晶振电路 93.2.3 复位电路103.2.4 电源电路103.3 rs232电平转换电路设计 113.4 硬件电路连线图12第4章 软件设计4.1 串行通信协议设计134.2 程序设计144.2.1 流程图144.2.2 程序清单16第5章 总结 19参考文献 20第1章 设计的目的和要求1.1 设计目的1、 了解lpc2138各个引脚功能,工作方式,计数/定时,i/o口,中断等的相关原理,并巩固学习嵌入式的相关内容知识。2、 培养综合运用所学知识、独立分析和解决实际问题的能力,培养创新意识和创新能力,并获得科学研究的基础训练。3、 掌握lpc2138芯片及pc机rs232通信原
3、理。1.2 设计要求利用lpc2138芯片与pc机实现信息的串行通信:1、课程设计论文内容要正确,概念要清楚;2、完成任务书所规定的内容;3、附有电路原理图及程序流程图,以及程序清单;4、文字要通顺,书写要工整,设计图纸必须符合规范。第2章 方案论证2.1 设计方案方案一:采用单片机89s51芯片和max3232芯片与pc机进行rs232串行通信;方案二:采用lpc2114芯片和sc161s752芯片与pc机进行rs232串行通信;方案三:采用lpc2138芯片和max3223芯片pc机进行rs232串行通信;2.2 方案选择mcu-51系列芯片主要是8位单片机,而lpc2000系列芯片是32
4、位的微处理器,因此采用单片机芯片相对来说会比其余方案的功能来的简单,性能会比较差。max3223芯片与sc161s752芯片都能实现rs232电平的转换,但max3223芯片的设计简单,成本更低廉。因此我们组选择方案三。根据系统设计的要求,对系统设计的总体方案进行论证分析如下:1当使用串口进行数据传送时,虽然同步通信速度远远高于异步通信,可达500kbit/s,但由于其需要有一个时钟来实现发送端和接收端之间的同步,硬件电路复杂,通常计算机之间的通信只采用异步通信。2本设计中采用外接晶振的方法。3rs232接口具有良好的抗噪声干扰性、 长的传输距离和多点连接能力等优点, 所以选用 rs232接口
5、。因普通pc机串口遵循标准的 rs232通讯协议,所以在pc机串口与通信电缆间安装一 rs232 /485协议转换器实现协议转换。4:程序采用c语言来实现来实现。第3章 硬件电路设计3.1 设计思路lpc2138具有片内flash程序存储器,需3.3v电源、复位电路、晶振电路,p0.14接一个上拉电阻禁止isp功能。lpc2138的uart0没有完整的modem接口信号,仅提供txd、rxd信号引脚,使用uart0与rs-232接口进行串行通信需要一个rs-232转换器(max3223芯片)将ttl电平转换成rs-232电平。3.2 主电路设计 3.2.1 lpc2138芯片1、 简介lpc2
6、138 是基于一个支持实时仿真和嵌入式跟踪的32/16 位arm7tdmi-stm cpu 的微控制器,并带有512 kb 的嵌入的高速flash 存储器。片内128 位宽度的存储器接口和独特的加速结构使32 位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16 位thumb模式将代码规模降低超过30%,而性能的损失却很小。由于lpc2138较小的封装和极低的功耗,多个32 位定时器,4路10位adc或8路10位adc,pwm 通道和46个gpio 以及多达9 个边沿或电平触发的外部中断。可理想地用于小型系统中,如访问控制和pos 机。宽范围的串行通信接口和片内32kb 的sr
7、am 使lpc2138 非常适用于通信网关、协议转换器、软modem、声音辨别和低端成像,为它们提供巨大的缓冲区空间和强大的处理功能。lpc2138 集成了一个512 kb 的flash 存储器系统。该存储器可用作代码和数据的存储。对flash 存储器的编程可通过几种方法来实现。可通过串口进行在系统编程。应用程序也可以在程序运行时擦除和/或编程flash,这样为数据存储和现场固件的升级都带来了极大的灵活性。当使用片内bootloader 时,512kb 的flash存储器可作用户代码使用。2、引脚描述图3.1 lpc2138芯片引脚图表3-1 lpc2138引脚功能介绍引脚名称引脚号类型描 述
8、p0.0 p0.31i/op0 口:p0 口是一个32 位双向i/o 口。每个位都有独立的方向控制。有31 个p0 口可用作通用双向数字i/o 口,p0.31 只用作输出口。p0口管脚的操作取决于管脚连接模块所选择的功能。p0.24 不可用。p0.019ootxd0uart0 的发送器输出pwm1脉宽调制器输出1p0.121 ioirxd0uart0 的接收器输入pwm3脉宽调制器输出3eint0外部中断0 输入p0.222 i/oiscl0i2c0 时钟输入/输出。开漏输出cap0.0定时器0 捕获输入0p0.326 i/ooisda0i2c0 数据输入/输出。开漏输出mat0.0定时器0
9、匹配输出0eint1外部中断1 输入p0.427 i/oiisck0spi0 串行时钟,主机输出或从机输入的时钟cap0.1定时器0 捕获输入0ad0.6a/d 转换器0 输入6。该模拟输入总是连接到相应的管脚。p0.529 i/ooimiso0spi0 主机输入/从机输出,从机到主机的数据传输mat0.1定时器0 匹配输出1ad0.7a/d 转换器0 输入7。该模拟输入总是连接到相应的管脚。p0.630i/oiimosi0spi0 主机输出/从机输入,主机到从机的数据传输cap0.2定时器0 捕获输入2ad1.0a/d 转换器1 输入0。该模拟输入总是连接到相应的管脚。p0.731 iois
10、sel0spi0 从机选择,选择spi 接口用作从机。pwm2脉宽调制器输出2eint2外部中断2 输入p0.833 ooitxd1uart1 的发送器输出pwm4脉宽调制器输出4ad1.1a/d 转换器1 输入1。该模拟输入总是连接到相应的管脚。p0.934 ioirxd1uart1 的接收器输入pwm6脉宽调制器输出6eint3外部中断3 输入p0.1035 oiirts1uart1 请求发送输出cap1.0定时器1 捕获输入0ad1.2a/d 转换器1 输入2。该模拟输入总是连接到相应的管脚。p0.1137iii/octs1uart1 的清零发送输入cap1.1定时器1 捕获输入1scl
11、1i2c1 时钟输入/输出。开漏输出p0.1238 ioidsr1uart1 的数据设备就绪输入mat1.0定时器1 匹配输出0ad1.3a/d 转换器1 输入3。该模拟输入总是连接到相应的管脚。p0.1339 ooidtr1uart1 的数据终端就绪输出mat1.1定时器1 匹配输出1ad1.4a/d 转换器1 输入4。该模拟输入总是连接到相应的管脚。p0.1441iii/odcd1uart1 数据载波检测输入eint1外部中断1 输入sda1i2c1 数据输入/输出。开漏输出p0.1545 iiiri1uart1 铃声指示输入eint2外部中断2 输入ad1.5a/d 转换器1 输入5。该
12、模拟输入总是连接到相应的管脚。p0.1646 ioieint0外部中断0 输入mat0.2定时器0 匹配输出2cap0.2定时器0 捕获输入2p0.1747 ii/oocap1.2定时器1 捕获输入2sck1ssp串行时钟,主机输出或从机输入的时钟mat1.2定时器1 匹配输出2p0.1853ii/oocap1.3定时器1 捕获输入3miso1ssp 主机输入/从机输出,从机到主机的数据传输mat1.3定时器1 匹配输出3p0.1954 oi/oimat1.2定时器1 匹配输出2mosi1ssp主机输出/从机输入,主机到从机的数据传输cap1.2定时器1 捕获输入2p0.2055 oiimat
13、1.3定时器1 匹配输出3ssel1ssp从机选择,选择ssp 接口用作从机。eint3外部中断3 输入p0.211 oiipwm5脉宽调制器输出5ad1.6a/d 转换器1 输入6。该模拟输入总是连接到相应的管脚。cap1.3定时器1 捕获输入3p0.222 iioad1.7a/d 转换器1 输入7。该模拟输入总是连接到相应的管脚。cap0.0定时器0 捕获输入0mat0.0定时器0 匹配输出0p0.2358i/o通用数字输入/输出口。p0.259 ioad0.4a/d 转换器0 输入4。该模拟输入总是连接到相应的管脚。aoutd/a 转换器输出p0.2610iad0.5a/d 转换器0 输
14、入5。该模拟输入总是连接到相应的管脚。p0.2711iioad0.0a/d 转换器0 输入0。该模拟输入总是连接到相应的管脚。cap0.1定时器0 捕获输入1mat0.1定时器0 匹配输出1p0.2813iioad0.1a/d 转换器0 输入1。该模拟输入总是连接到相应的管脚。cap0.2定时器0 捕获输入2mat0.2定时器0 匹配输出2p0.2914 iioad0.2a/d 转换器0 输入2。该模拟输入总是连接到相应的管脚。cap0.3定时器0 捕获输入3mat0.3定时器0 匹配输出3p0.3015iiiad0.3a/d 转换器0 输入3。该模拟输入总是连接到相应的管脚。eint3外部中
15、断3 输入cap0.0定时器0 捕获输入0p0.3117o通用数字输出口。重要:当reset 管脚为低电平或禁止jtag 端口时,该管脚必须不能外部拉低。p1.0p1.31i/op1 口:p1 口是一个32 位双向i/o 口。每个位都有独立的方向控制。p1 口管脚的操作取决于管脚连接模块所选择的功能。p1 口的p1.0p1.15 不可用。p1.1616 otracepkt0跟踪包位0,带内部上拉的标准i/o 口。p1.1712otracepkt1跟踪包位1,带内部上拉的标准i/o 口。p1.188 otracepkt2跟踪包位2,带内部上拉的标准i/o 口。p1.194 otracepkt3跟
16、踪包位3,带内部上拉的标准i/o 口。p1.2048 otracesync跟踪同步。带内部上拉的标准i/o 口。当reset为低时,tracesync上的低电平使p1.16p1.25在复位后作为跟踪端口。p1.2144 opipestat0流水线状态位0,带内部上拉的标准i/o 口。p1.2240 opipestat1流水线状态位1,带内部上拉的标准i/o 口。p1.2336 opipestat2流水线状态位2,带内部上拉的标准i/o 口。p1.2432otraceclk跟踪时钟。带内部上拉的标准i/o 口。p1.2528 iextin0外部触发输入。带内部上拉的标准i/o 口。p1.2624
17、i/ortck返回的测试时钟输出。jtag 端口的额外信号。当处理器频率变化时帮助调试器保持同步。带内部上拉的双向口。当reset 为低时,rtck 上的低电平会使p1.26p1.31 在复位后作为调试端口。p1.2764 otdojtag 接口测试数据输出。p1.2860 itdijtag 接口测试数据输入。p1.2956 itckjtag 接口测试时钟。p1.3052 itmsjtag 接口的模式选择。p1.3120 itrst jtag 接口的测试复位。reset57 i外部复位输入:该管脚的低电平将器件复位,并使i/o 口和外围功能恢复默认状态,处理器从地址0 开始执行。带迟滞的ttl
18、 电平,管脚可承受5v 电压。xtal162i振荡器电路和内部时钟发生器的输入。xtal261 o振荡放大器的输出。rtxc13 irtc 振荡电路的输入。rtxc25 ortc 振荡电路的输出。vss6,18,25,42 50i地:0v 参考点。vssa59i模拟地:0v 参考点。标称电压与vss 相同,但应当互相隔离以减少噪声和故障。vdd23,43 51i3.3v 电源:内核和i/o 口的电源电压。vdda7i模拟3.3v 端口电源:标称电压与vdd 相同,但应当互相隔离以减少噪声和故障。该电压也用来向片内pll 供电。vref63ia/d 转换器参考电压:标称电压与vdd 相同,但应当
19、互相隔离以减少噪声和故障。该管脚的电平用作a/d 和d/a 转换器的参考电压。vbat49irtc 电源:rtc 的3.3v 电源端。3.2.2 晶振电路lpc2138arm晶体振荡器可以使用外接晶体产生时钟,称之为“振荡模式”,硬件连接如图3.2所示。微控制器内部的振荡电路仅支持130mhz的外部晶体。由于芯片内部已经集成了反馈电阻,所以只需在外部连接一个晶体和电容c1、c2就可以形成基本模式的振荡。图3.2晶振电路3.2.3 复位电路一些微控制器自己在上电时会产生复位信号,但大多数微控制器需要外部输入这个信号。因为这个信号会使微控制器初始化为某个确定的状态,所以这个信号的稳定性和可靠性对微
20、控制器的正常工作有重大影响。sp708s芯片属于微处理器(up)监控器件,可有效的监测up及数字系统中的供电及电池的工作情况,以提高系统的可靠性。带手动复位的复位电路如图3.3所示。图3.3 复位电路3.2.4 电源电路电源系统为整个系统提供能量,是整个系统工作的基础,具有极其重要的地位,但却往往被忽略。如果电源系统处理的好,那么整个系统的故障往往减少了一大半。设计电源电路必须考虑的因素有:输出的电压、电流和功率;输入的电压、电流;安全因素;输出波纹;电磁兼容和电磁干扰;体积限制;功耗限制;成本限制。电源电路如图3.4所示。图3.4 电源电路3.3 rs232电平转换电路设计1、 串口原理串口
21、,简单地说,就是串行收发数据的接口。串口通信是一种异步通信方式(串口通信也有同步通信的标准,但实际应用很少),其中负责异步串行收发数据的模块叫uart(univesal asynchronous receiver/transmitter)。由于异步通信的数据发送方和数据接收方的系统时钟不是同步的,数据通信过程中也不携带任何时钟信息,因此他的速度收到了很大限制,目前较常用的串口速率最快的也只能达到115200bit/s。串口发送的数据都是以字节为单位的,一个字节发送的过程分为起始位、数据位和结束位三部分。所有数据的起始位和结束位都分别是逻辑0和1。串口通信是异步通信,因此设备两端需要一个时钟同步
22、的过程,这在高速数据通信中往往由采用锁相环技术的时钟恢复电路来完成。但是在低速率的串口通信中,人们设计了一种更为简单的方式实现时钟同步。串口数据线平时的状态总是逻辑1,而设计接收方采用比线路速率高得多的时钟对数据线进行采样,一旦在线路上采到逻辑0,则表示线路上有新的数据发送了,接收方根据事先约定好的串口速率,以自己的高速时钟计数,在每一个数据位的有效期内采样到正确的数值。当一个字节发送完毕,为了让数据接收方有足够的准备时间接收下一个字节,因此又定义了停止位。停止位是逻辑1,因此相当于强迫数据线回到空间状态至少一个数据周期。2、 串口电平串口设备实际使用时,人们为了让它的信号可以传输的更远,并不
23、会直接将逻辑电平放到传输线上,而是会做电平转换。这个电平标准就是rs232标准,它规定逻辑1(也称为mark)的电平范围是-5-15v;逻辑0(也称为space)的电平范围是515v。3、 电平转换电路串口信号要传输必须进行电平转换,而所有的串口芯片,包括处理器内部集成的串口模块都不会直接输出rs232电平的串口信号,因此都需要进行串口电平转换。完成串口电平转换 电路设计很简单,最简单的能进行双向通信的串口只需要3根信号线,这种串口实际使用的也最多。图 3.5 给出了利用电平转换芯片max3223完成串口电平转换的电路。图3.5 串口电平转换电路3.4 硬件电路连线图本次设计的硬件电路连线图如
24、图3.6所示。图3.6 硬件电路连线图第4章 软件设计4.1 串行通信协议设计无论是异步串行通信还是同步串行通信、为了保证通信的正确,发送方和接收方事先必须有一个双方共同遵守的协议,来规定数据传送格式、起始标志、结束标志、校验方式等。例如pc系列微机中广泛采用的异步串行通信方式,其通信协议规定的信息传输格式如图4.1所示。按该格式,每帧信息(即每个字符)由4部分组成: 图4.1 异步串行通信格式(1) 1位起始位,规定为低电平“0”。(2) 58位数据位,它紧跟在起始位后面,是要传送的有效信息。规定从低位至高位依次传送。(3) 0位或1位奇偶校验位。(4) 1位,112位或2位停止位,规定为高
25、电平“1”。其中采用相反极性的起始位和停止位起着至关重要的作用。起始位标志每个字符的开始,通知接收器开始装置一个字符,以便和发送器取得同步;停止位标志每个字符的结束。利用前一个字符的高电平停止位到后一个字符的低电平起始位的负跳变,接收器便知道这是一个字符的开始,可以以此作为新字符内位检测与采样的时间基准。正是为了保证这种从一个字符到另一个字符的转换必须以负跳变开始,通信协议规定在字符与字符之间出现空闲状态时,空闲位也一律用停止位的“1”填充。除此之外,通常还采取以下两项措施来进一步消除因收发双方时钟的相对偏差而可能导致的接收端采样错误: (1)接收器在每位码元的中心采样,以获得最大的收/发时钟
26、频率偏差容限。(2)接收器采用比传送波特率更高频率的时钟来控制采样时间,以提高采样的分辨能力和抗干扰能力。例如,利用图4.2所示的这种经16倍频的接收时钟对串行数据流进行检测和采样,接收器能在一个位周期的1/16时间内决定出字符的开始。如果采样频率和传送波特率相同,没有这种倍频关系,则分辨率会很差。比如在起始位前沿出现前夕刚采样一次,则下次采样要到起始位结束前夕才进行。而假若在这个位周期期间因某种原因恰恰使接收端时钟往后偏移了一点点,就会错过起始位而导致整个后面各位检测和识别的错误。图4.2 用16倍波特率接收时钟控制采样过程示意图4.2 程序设计4.2.1 流程图远端arm嵌入式系统lpc2
27、138芯片采用中断方式进行数据接收, 基于软件编程与上位机进行通讯, 下位机中断子程序流程、数据发送流程、串口初始化流程和数据接收流程分别如图4.3、图4.4、图4.5和图4.6所示:图4.3 中断子程序流程图图4.4 数据发送流程图图4.5 串口初始化流程图 图4.6 数据接收流程图 控制中心上位pc 机始终在循环发送指令, 当远端单元接收到与本机地址相同的指令时, 置接收数据标志, 接收到自己的指令后, 远端单元开始上传数据到上位pc机, 与此同时pc 机停止发送指令并处于接收数据状态, 等到接收数据完毕并检验数据合格后发送确认命令到此远端单元; 如果没收到数据或数据不合格, 则发送错误标
28、志到此远端单元; 如果收到的指令与本机地址不同时, 程序返回中断入口处, 继续执行其它操作。这样可保证远端单元把数据准确地发送到上位机。图4.7 pc机通讯子程序流程图4.2.2 程序清单/* 文 件 名:main.c* 功 能:向串口发送数据。* 说 明:使用外部11.0592mhz晶振,根据config.h文件配置,fpclk=11.0592mhz;* 通讯波特率115200,8位数据位,1位停止位,无奇偶校验。*/#include config.h#define uart_bps115200/ 定义通讯波特率uint8 const send_string = hello world!rn
29、;/* 名 称:delayns()* 功 能:长软件延时* 入口参数:dly延时参数,值越大,延时越久* 出口参数:无*/void delayns(uint32 dly) uint32 i; for(; dly0; dly-) for(i=0; i5000; i+); /* 名 称:uart0_ini()* 功 能:初始化串口0。设置为8位数据位,1位停止位,无奇偶校验,波特率为115200* 入口参数:无* 出口参数:无*/void uart0_init(void) uint16 fdiv; u0lcr = 0x83;/ dlab = 1,可设置波特率 fdiv = (fpclk / 16)
30、 / uart_bps;/ 设置波特率 u0dlm = fdiv / 256; u0dll = fdiv % 256; u0lcr = 0x03;/* 名 称:uart0_sendbyte()* 功 能:向串口发送字节数据,并等待发送完毕。* 入口参数:data要发送的数据* 出口参数:无*/void uart0_sendbyte(uint8 data) u0thr = data; / 发送数据 while( (u0lsr&0x40)=0 ); / 等待数据发送完毕/* 名 称:uart0_sendstr()* 功 能:向串口发送一字符串* 入口参数:srt要发送的字符串的指针* 出口参数:无
31、*/void uart0_sendstr(uint8 const *str) while(1) if( *str = 0 ) break; uart0_sendbyte(*str+); / 发送数据 /* 名 称:uart0_rcvbyte()* 功 能:从串口接收字节数据。使用查询方式* 入口参数:无* 出口参数:返回接收到的数据*/uint8 uart0_rcvbyte(void)uint8 rcv_data;while(u0lsr&0x01)=0);rcv_data=u0rbr;return(rcv_data);/* 名 称:main()* 功 能:向串口uart0发送字符串hello
32、world!*/int main(void) pinsel0 = 0x00000005; / 设置i/o连接到uart0 uart0_init(); while(1) uart0_rcvbyte(); uart0_sendstr(send_string); delayns(10); return(0);第5章 总结本次课程设计我组的课题是基于lpc2138芯片与pc机的串行通信设计,通过这次的课程设计,我了解了嵌入式系统的一些基本知识和arm嵌入式系统的应用。这次课程设计我们查阅了许多的相关文献和书籍,了解了许多关于嵌入式系统的应用知识,对arm7系列的嵌入式系统芯片有了客观的认识。课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年森林资源培育与保护承包合同3篇
- 2024外资企业股权出售与境内投资合作合同范本3篇
- 2024年度医疗器械维修代加工及售后服务协议3篇
- 2024年度地区总代理销售权及品牌使用权合同范本3篇
- 2024年地质勘探服务地质勘察服务合同样本3篇
- 2024年度商业地产土地使用权永久转让与商业运营管理合同3篇
- 2024年太阳能组件安装及智能监控系统合作协议3篇
- 2024年新能源充电设施区域代理合同3篇
- 起草销售合同范例
- 土地搞标居间合同范例
- 非物质文化遗产主题班会之英歌舞课件
- 《人工智能基础》课件-AI的前世今生:她从哪里来
- 中国矿业大学《自然辩证法》2022-2023学年期末试卷
- 江苏省期无锡市天一实验学校2023-2024学年英语七年级第二学期期末达标检测试题含答案
- 西方经济学考试题库(含参考答案)
- 引水式水电站工程施工组织设计
- 医院工作流程图较全
- NB/T 11431-2023土地整治煤矸石回填技术规范
- 创业基础(浙江财经大学)智慧树知到期末考试答案章节答案2024年浙江财经大学
- 保险公司增额终身寿主讲课件
- 手术室二氧化碳应急预案及流程
评论
0/150
提交评论