基于S3C44BOX的网络通信.docx
《基于S3C44BOX的网络通信.docx》由会员分享,可在线阅读,更多相关《基于S3C44BOX的网络通信.docx(18页珍藏版)》请在冰点文库上搜索。
基于S3C44BOX的网络通信
xxxxxxxxxxxxxxx学校计算机工程系
毕业设计论文(报告)
题目:
基于S3C44BOX的网络通信
学号:
姓名:
专业:
班级:
指导教师:
设计地点:
设计时间:
xxxx学校附表1
计算机应用技术专业毕业设计任务书
姓名:
xxx班级:
xxx学号:
xxxx
一、设计或实践题目:
基于ARM的嵌入式芯片S3C44box下的网络通信设计。
二、内容及要求
软件开发环境:
Windows操作系统、EmbestIDE(也可ADS环境)
硬件开发环境:
S3CEV40实验箱
要求:
在S3CEV40实验箱上实现基本的网络数据传输功能(两台试验箱互通、与PC机互通、与其它网络交换设备通信均可)。
三、完成形式
毕业设计论文(源代码、逻辑图)
四、系(部)审核意见:
指导教师:
xxx发题日期:
2011年1月14日
完成日期:
2011年5月31日
摘要
本次设计使用EmbestIDE软件,配合S3C44BOX试验箱完成试验箱与PC机的互相通信,设计使用串口与电脑相连,利用S3C44BOX的串行通信(UART)单元的相关函数完成所需功能。
为了使实验结果更加易见,附加8led,keyboard,led等函数。
通过PC机上的超级终端显示从计算机上输入的内容,同时若输入特定字符l,则超级终端输出l,同时试验箱上LED灯依次显示0123456789abcdef一次;当按下SB2时,LED1亮,超级终端将显示SB2hadpressed.当按下SB3时,LED1灭,LED2亮,超级终端将显示SB3hadpressed.
关键字:
串口通信、超级终端、UART。
Abstract
ThisdesignusesEmbestIDEsoftware,completewithS3C44BOXchamberchambercommunicatewitheachotherandthePCmachine,designedtouseserialportconnectedtothecomputer,usingS3C44BOXserialcommunication(UART)unitofthecorrelationfunctiontocompletethedesiredfunction.Tomakeresultsmoreeasily,add8led,keyboard,ledotherfunctions.ThroughHyperTerminalonthePC,displaythecontentsoftheinputfromthecomputer,andparticularcharacteriftheinputl,theHyperTerminaloutputl,whileLEDlightsturnonthedisplaychamber0123456789abcdefonce;WhenyoupresstheSB2time,LED1light,SuperTerminalwillShowSB2hadpressed.WhenyoupresstheSB3when,LED1off,LED2light,SuperTerminalwilldisplaySB3hadpressed.
Keywords:
Serialcommunications,HyperTerminal,UART.
目录
引言................................................................5
第一章S3C44BOX概述.................................................6
1.1S3C44BOX微处理器概述......................................6
1.2EmbestS3C44BOX试验箱.....................................6
1.3实验系统简介..............................................7
第二章串口通信相关技术.............................................8
2.1串口通信概述................................................8
2.2S3C44BOX的串行通信单元......................................9
2.3UART的特性如下..............................................9
2.4UART操作....................................................9
第三章串口电路及相关代码...........................................12
3.1串行接口电路图...............................................12
3.2实现步骤及功能..............................................13
3.3串行通信数据函数库函数.......................................14
3.3.1初始化程序............................................14
3.3.2接收字符.............................................14
3.3.3送字符函数...........................................15
3.3.4主函数(main函数)..................................16
3.5.5功能函数.............................................18
3.5.5.1UART函数.....................................18
3.5.5.28LED函数.....................................18
3.5.5.3keyboard键盘扫描函数.........................21
3.5.5.4led函数......................................22
致谢...............................................................23
参考文献...........................................................23
引言
嵌入式系统是指将应用程序、操作系统、与计算机硬件集成在一起的系统。
它以应用为中心、以计算机技术为基础,软、硬件可以裁剪,是能满足应用系统对功能、可靠性、成本、体积和功耗的严格要求的专用计算机系统。
嵌入式系统与通信、网络技术的结合可以极大的增强网络的智能化和灵活性,拓展通信功能,从而实现各种通信设备间的互联互通。
可以预言,嵌入式设备与网络通信的结合代表着嵌入式系统与网络技术的真正未来。
实验系统提供两个串口(DB9),其中UART1为主串口,可与PC或MODOM进行串行通信。
由于S3C44BOX未提供DCD(载波检测)、DTR(数据准备)和RIC(振铃指示)等专用I/O口,故用MCU的通用I/O口代替。
UART0只采用2根接线RXD和TXD,因此,只能进行较简单的数据传输及接收功能。
全接口的UART1采用MAX3243E作为电平转换器,简单接口的UART0则采用MAX3221E作为电平转换器。
第一章
1.1S3C44BOX微处理器概述
S3C44BOX微处理器是三星公司生产的基于ARM7TDMI核的微处理器,采用的0.25umCMOS工艺制造,并在ARM7TDMI核基本功能的基础上集成了丰富的外围功能模块,便于低成本设计嵌入式应用系统。
片上集成的主要功能如下:
●在ARM7TDMI基础上增加8KB的cache。
●外部扩充存储器控制器(FP/EDO/SDRAM),并带有1个LCD专用DMA通道
●2个通用的DMA通道/2个带外部请求的DMA通道。
●2个带有握手协议的UART和1个SIO。
●1个多主的I²C总线控制器。
●1个IIS总线控制器。
●5个PWM定时器及一个内部定时器。
●看门狗定时器。
●71个通用可编程口I/O口,8个外部终端源。
●功耗控制模块是正常、低、休眠和停止。
●8路10位ADC。
●具有日历功能的RTC(实时闹钟)。
●PLL时钟发生器。
1.2EmbestS3C44BOX试验箱
EmbestS3C44BOX试验箱是系统的主要硬件平台,它是英蓓特公司开发的一款全功能ARM试验箱,基于SAMSUNG公司的S3C44BOX处理器,资源丰富。
硬件系统包含了嵌入式系统开发应用所需的大部分设备,例如串口、以太网口、USB口、音频输出口、LCD口及TSP触摸屏、4x4小键盘、固态硬盘、大容量Flash和SDRAM等等。
用户不仅可以在该硬件上完成实验系统提供的实验例子,还可以参考平台设计目标系统。
EmbestS3C44BOX试验箱的基本资源如下:
●电源:
外部5V电源供电,或者由USB供电,电源指示LED及500mA保险丝
●1Mx16位Flash;
●4x1Mx16位SDRAM;
●4K位的I²CBUS的串行EEPROM;
●2个串口,一个为全接线接口,一个为简单接口,可跳接。
●复位开关;
●2个中断按钮,2个LED;
●外部IDE硬盘接口;
●LCD及TSP触屏接口;
●20针JTAG接口;
●USB连接器;
●4x4键盘接口;
●4个2x20引脚CPU扩展接口;
●10Mb/s以太网接口;
●8段数码管;
●MICROPHONE输入口;
●IIS音频信号输出口,可接双声道SPEAKER;
●固态硬盘16Mx8位;
●320x240带触摸功能的显示屏。
1.3实验系统简介
1.3.1EmbestIDE简介
EmbestIDE是一套应用于嵌入式软件开发的新一代集成开发环境。
它提供高效、清晰且集成化的嵌入式应用软件开发平台,包括一整套完整的、面向嵌入式系统的开发和调试工具;编辑器、编译器、连接器、调试器和工程管理器等。
EmbestIDE集成开发环境界面风格与MicrosoftVisualStudio相同,是一套良好的嵌入式软件可视化开发环境。
用户可以方便的在EmbestIDE集成开发环境中创建和打开工程,建立、打开和编辑文件,编译、连接、运行、调试各种嵌入式程序。
1.3.2EmbestIDE主要特征
EmbestIDE可以在WIN98、2000、XP等操作系统上运行,主要支持ARM系列处理器。
对于ARM系列处理器,目前EmbestIDE支持ARM7及ARM9系列。
EmbestIDEforARM主要特性如下:
●支持所有的ARM7及ARM9系列处理器;
●支持开发语言:
C和汇编;
●编译工具:
集成GCC编译器,提供了图形化的编译器开关设置界面;
●源码编辑器:
支持标准的文本编辑功能,支持语法分色显示;
●图形化的工程管理与设置,图形化设置编译连接选项;
●调试功能:
可进行程序下载、断点设置、单步执行、异常处理等,可查看修改存储区、寄存器、外围寄存器、变量,可查看函数栈,显示反汇编指令及源文件交叉显示;
●丰富的例程主要提供:
Atmel、Samsung、OKI、CirrusLogic等多家公司的ARM处理器的调试程序示例和使用说明;
●配合EmbestPowerICE仿真器,速度可达120Kbytes/s;
第二章串口通信相关技术
2.1串口通信概述
串行通信借口电路一般由可编程的串行借口芯片、波特率发生器、EIA与TTL电平转换器以及地址译码电路组成。
采用的通信协议有两类:
异步协议和同步通信协议。
随着大规模集成电路技术的发展,通用的同步UART和异步的UART接口芯片种类越来越多,采用这些芯片作为串行通信接口的核心芯片,会使电路结构比较简单,从而减少成本和体积,减低设计的风险和难度。
UART(universalasynchronousreceiver/transmitter)通用异步收发器是用于计算机与串行设备的接口。
它提供RS_232C数据终端设备接口,这样计算机就可以和调制解调器或其他使用RS-232接口的串行设备通信了。
S3C44BOX内部集成的UART单元提供两个独立的异步串行I/O端口,也就是通常所说的串口。
产口不仅可以用来于外部设备进行数据通信,还可以用来观察系统的运行状况。
作为接口的一部分,UART还提供一下功能:
将由计算机内部传送过来的并行数据转化为输出的串行数据流;将计算机外部传来的串行数据转换为字节,供给计算机内部使用并行数据的器件;在输出的串行数据中加入奇偶效验位,并对从外部接收数据流进行奇偶效验;在输出数据流中加入启/停标记;处理由键盘或鼠标发出的中断信号(键盘和鼠标也是串行设备);处理计算机与外部串行设备的同步管理。
2.2S3C44BOX的串行通信单元
S3C44BOX的串行通信(UART)单元提供两个独立的异步串口I/O端口,每个都可以在中断和DMA两种模式下工作。
它们支持的最高波特率为115.2KB/S。
每个UART通道包含2个16位FIFO分别提供接收和发送。
S3C44BOX的UART可以进行以下参数的设置:
可编程的波特率、红外收/发模式、1或2个停止位、5位/6位/7位/8位数据宽度和奇偶效验。
每个UART模块包含以下几个部件:
波特率发生器、发送器、接收器和控制单元。
波特率发生器以MCLK作为时钟源。
发送器和接收器包含16字节的FIFO和移位寄存器。
要被发送的数据首现被写入FIFO,然后被复制的发送移位寄存器中,最后从数据端口(TxDn)依次被位移输出。
被接收的数据也同样的从数据端口(TxDn)依次被位移输入到位移寄存器,然后被复制到FIFO中。
2.3UART的特性如下:
●RxD0,TxD0,RxD1和TxD1可以以中断模式或DMA模式工作。
●UART通道0符合IRDA1.0的要求,且具有16字节的FIFO。
●UART通道1符合IRDA1.0的要求,且具有16字节的FIFO。
●支持收发时的握手模式。
2.4UART操作
UART的操作包括数据发送、数据接收、中断发生、波特率发生、回合发生、回送模式以及自动流控制等内容。
1.数据发送
数据发送的帧格式是可编程的,包括一个起始位、5-8个数据位、一个可选的奇偶位和1-2个停止位,这些都可以通过线控制寄存器(ULCONn)来设置。
发送器也能够产生发送中止条件。
中止条件迫使串口输出保持在逻辑0状态,这种状态保持超过一个传输帧的时间长度。
通常在一帧传输数据完整的传输完后,在通过这个全0状态将中指信号发送给对方。
终止信号发送后,传送数据将持续的放入输出FIFO中(在不使用FIFO模式下,将被放入输出保持寄存器)。
2.自动控制
与发送一样,接收的数据帧格式同样是可编程的,包括一个起始位。
5-8个数据位、一个可选的奇偶位和1-2个停止位,这些都可以通过线控制寄存器(ULCONn)来设置。
接收器还可以检测到溢出错误、帧错误、奇偶效验错误和中指状况,每种情况都会将一个错误标志置位,检测到的各种错误描述如下:
●溢出错误表示新的数据已经覆盖了就的数据,因为旧的数据没有及时被读入。
●奇偶效验错误表示接收器检测到了意外的奇偶效验结果。
●帧错误表示接收到的数据没有有效的停止位。
●终止状况表示RxDn的输入被保持为0状态的时间超过了一个帧传输的时间。
在FIFO模式下,接收FIFO不应为空,但当接收器在三个字时间内都没有接收到任何数据时就认定接收超时状况。
3.非自动控制
S3C44BOX的UART通过nCTS信号支持自动流控制(AFC),在这种情况下必须是UART与UART相连。
如果用户将UART连接到调制解调器,就应该在UMCONn寄存器中禁止自动流控制位,并通过软件控制nTRs。
在AFC中,nTRS由接收器的接收情况来控制,nCTS则控制了发送器的工作。
UART发送器在nTRs被置1的时候发送FIFO中的数据(在AFC中,nTRS意味着对方UART的FIFO已经准备好接收数据)。
在UART接收数据时,如果它的接收FIFO中还有多余两个字节的剩余空间就必须将nRTS置1,以便告诉对方“接收准备好”,当接收FIFO的剩余空间少于1字节时,必须将nTRs清0,说明“不再接收”。
4.非自动流控制
非自动流控制是指通过软件控制nTRs和nCTS。
(1)接收操作步骤
1)选择接收模式(中断或BDMA模式)。
2)检查UFSTATn寄存器中接收FIFO计数器的值。
如果值小于15,用户必须设置UMCONn第0位的值为1(即激活nTRs);如果值等于或大于15,用户必须设置该位的值为0(即失活Nrts)。
3)重复2)步。
(2)发送操作步骤
1)选择发送模式(中断或BDMA模式)。
2)检查UMSTATn第0位的值,如果为1(nTRS被激活),用户就可以写数据到输出缓冲区或输出数据到FIFO寄存器中。
5.中断/DMA请求产生器
S3C44BOX的每个UART都有7个状态信号:
接收FIFO/缓冲区数据准备好、发送FIFO/缓冲区空、发送移位寄存器空、溢出错误、奇偶效验错误、帧错误和中指,所有这些状态都由应对的UART寄存器(UTSTATn/UERSTATn)中的相应位来表现。
当接收器要将接收移位寄存器的数据送到接收FIFO,它会激活接收FIFO满状态信号,如果控制寄存器中的接收模式选为中断模式,就会引发接收中断。
如果接收/发送模式被选为DMA模式,“接收FIFO满”和“发送FIFO空”状态信号同样可以产生DMA请求信号。
6.波特率发生器
每个UART的波特率发生器都为传输提供了串行移位时钟。
波特率发生器的时钟源可以通过S3C44BOX的系统时钟来选择。
波特率时钟通过时钟源的16分频及一个由UART波特率除数寄存器(UBRDIVn)指定的16位除数决定。
UBRDIVn的值可以按照以下算式确定:
UBRDIVn=(取整)(MCLK/(波特率x16))-1
7.回送模式
S3C44BOX的UART提供一个测试模式,即回送模式。
在这种模式下,发送的数据会立即被接收,这以特性用于校验运行处理器内部发送和功能通道的功能。
这种模式可以通过设置UART控制寄存器(UCONn)中的回送位来实现。
第三章串口电路及相关代码
3.1串行接口电路图
实验系统提供两个串口(DB9),其中UART1为主串口,可与PC或MODOM进行串行通信。
由于S3C44BOX未提供DCD(载波检测)、DTR(数据准备)和RIC(振铃指示)等专用I/O口,故用MCU的通用I/O口代替。
UART0只采用2根接线RXD和TXD,因此,只能进行较简单的数据传输及接收功能。
全接口的UART1采用MAX3243E作为电平转换器,简单接口的UART0则采用MAX3221E作为电平转换器。
3.2实现步骤及功能
1.准备实验环境。
使用Embest仿真器连接目标板,使用EmbestS3CEV40实验板附带的串口线连接实验板上的UART0和PC机的串口。
2.在PC机上运行Windows自带的串口通信程序超级终端程序,打开超级终端并
COM1配置如下:
波特率:
115200数据位:
8奇偶效验:
无停止位:
1流控制:
无。
3.使用EmbestIDE通过Embest仿真器连接实验板,打开Uart_Test.ews,下载并运行。
4.在PC机上观察超级终端程序主窗口,可以看到如下显示:
EmbestS3CEV40>
5.通过PC机键盘输入字符,可以看到相应的字符显示在超级终端主窗口中。
按回车,所有字符同时显示。
EmbestS3CEV40>123456
123456
EmbestS3CEV40>
若输入l,则在超级终端显示l,同时实验板上LED灯依次显示0123456789abcdef一次。
当按下SB2时,LED1亮,超级终端将显示SB2hadpressed.
当按下SB3时,LED1灭,LED2亮,超级终端将显示SB3hadpressed.
3.3串行通信数据函数库函数
3.3.1初始化程序
StaticintwhichUart=0;
VoidUart_Init(intmclk,intbaud)
{
intI;
if(mclk==0)mclk=Mclk;
rUFCON0=0x0;
rUFCON1=0x0;
rUMCON0=0x0;
rUMCON1=0x0;
rULCON0=0x3;
rUCON0=0x245;
rUBBDIVO=((int)(mclk/16./baud+0.5)-1);
rULCON1=0x3;
rUCON1=0x245;
rUBRDIV1=((int)(mclk/16./baud+0.5)-1);
for(i=0;I<100;i++);
}
3.3.2接收字符
CharUart_Getch(void)
{
if(whichUart==0)
{
While(!
(rUTRSTAT0&0x1));
ReturnRdURXH0();
}
else
{
while(!
(rUTRSTAT1&0x1));
returnrURXH1;
}
}
3.3.3送字符函数
voidUart_SendByte(intdata)
{
if(whileUart==0)
{
if(data==’\n’)
{
while(!
(rUTRSTRAT0&0x2));
Delay(10);
WrUTXH0(‘\r’);
}
while(!
(rUTRSTRAT0&0x2));
Delay(10);
WrUTXH0(DATA);
}
else
{
if(data==’\n’)
{
while(!
(rUTRSTRAT1&0x2));
Delay(10);
rUTXH1=’\r’;
}
while(!
(rUTRSTRAT1&0x2));
Delay(10);
rUTXH1=data;
}
}
3.3.4主函数(main函数)
/*---includefiles---*/
#include"44blib.h"
#include"44b.h"
/*---functioncode---*/
charstr_send[1