基于bios的嵌入式系统数据通讯开发毕业设计(编辑修改稿)内容摘要:

S3C44B0X 片上的主要功能 Samsung S3C44B0X 微处理器片内集成 ARM7TDMI 核,采用 m CMOS 工艺制造,并在 ARM7TDMI 核基本功能的基础上集成了丰富的外围功能模块,便于低成本设计嵌入式应用系统。 片上集成的主要功能如下: 在 ARM7TDMI 基础上增加 8KB 的 Cache; 外部扩充存储器控制器( FP/EDO/SDRAM 控制,片选逻辑); LCD 控制器(最大支持 256 色的 DSTN),并带有一个 LCD 专用 DMA 通道; 2 个通用 DMA 通道 /2 个带外部请求引脚的 DMA 通道; 2 个带有握手协议的 UART, 1 个 SIO; 1 个多主的 I2C 总线控制器; 1 个 IIS 总线控制器 ; 5 个 PWM 定时器及 1 个内部定时器; 看门狗定时器; 南京师范大学电气与自动化工程学院 基于 BIOS 的嵌入式系统数据通讯开发 8 71 个通用可编程 I/O 口, 8 个外部中断源; 功耗控制模式:正常、低、休眠和停止; 8 路 10 位 ADC; 具有日历功能的 RTC(实时时钟); PLL 时钟发生器。 B. S3C44B0X 功能结构框图 图 21 S3C44B0X 功能结构框图 南京师范大学电气与自动化工程学院 基于 BIOS 的嵌入式系统数据通讯开发 9 第 3章 PC 机 与 ARM 通讯 设计 第 PC 机上基于 VB 的串口通讯 PC 机 RS232 简介 RS232 接口就是串口,电脑机箱后方的 9 芯插座,旁边一般有 |O|O| 样标识。 一般机箱有两个,新机箱有可能只有一个。 笔 记本电脑有可能没有。 目前 RS232 是 PC 机与通信工业中应用最广泛的一种串行接口。 RS232 被定义为一种在低速率串行通讯中增加通讯距离的单端标准。 RS232 采取不平衡传输方式,即所谓单端通讯。 收、发端的数据信号是相对于信号地,典型的 RS232 信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在 +5~ +15V,负电平在 5~ 15V 电平。 当无数据传输时,线上为 TTL,从开始传送数据到结束,线上电平从 TTL 电平到 RS232 电平再返回 TTL 电平。 接收器典型的工作电平在 +3~ +12V 与 3~ 12V。 由于发送电平与接收电平的差仅为 2V 至 3V 左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约 15 米,最高速率为 20kb/s。 RS232 是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为 3~ 7kΩ。 RS232C : RS232C 是美国电子工业协会 EIA( Electronic Industry Association)制定的一种串行物理接口标准。 RS是英文 “推荐标准 ”的缩写, 232为标识号, C表示修改次数。 RS232C总线标准设有 25 条信号线,包括一个主 通道和一个辅助通道。 在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。 RS232C 标准规定的数据传输速率为每秒 50、 7 100、 150、 300、 600、 1200、2400、 4800、 9600、 19200 波特。 RS232C 标准规定,驱动器允许有 2500pF 的电容负载,通信距离将受此电容限制,例如,采用 150pF/m 的通信电缆时,最大通信距离为 15m;若每米电缆的电容量减小,通信距离可以增加。 传输距离短的另一原因是 RS232 属单端信号 传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于 20m 以内的通信。 串行通信接口标准经过使用和发展,目前已经有几种。 但都是在 RS232 标准的基础上经过改进而形成的。 所以,以 RS232C 为主来讨论。 RS323C 标准是美国 EIA(电子工业联合会)与 BELL 等公司一起开发的 1969 年公布的通信协议。 它适合于数据传输速率在 0~ 20200b/s 范围内的通信。 这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。 由于通行设备厂商都生产与 RS232C 制式兼容的通信设备,因此,它作为一种标 准,目前已在微机通信接口中广泛采用。 VB 通讯界面的设计 在 PC 机通讯界面设计方面, 本设计 选择了 VB 作为编程语言,因为 VB 采用了面向对象的程序设计思想。 它的基本思路是把复杂的程序设计问题分解为一个个能够完成独立功能的相对简单的对象集合,所谓 “对象 ”就是一个可操作的实体,如窗体、窗体中的命令按钮、标签、文本框等。 面向对象的编程就好像搭积木一样,程序员可根据程序和界面设计要求,直接在屏幕上 “画 出窗口、菜单、按钮等不同类型的对象,并为每个对象设置属性。 而且 在 Windows 环境下,程序是以事件驱动 方式运行的,每个对象都南京师范大学电气与自动化工程学院 基于 BIOS 的嵌入式系统数据通讯开发 10 能响应多个不同的事件,每个事件都能驱动一段代码 ——事件过程,该代码决定了对象的功能。 通常称这种机制为事件驱动。 事件可由用户的操作触发,也可以由系统或应用程序触发。 例如,单击一个命令按钮,就触发了按钮的 Click(单击 )事件,该事件中的代码就会被执行。 若用户未进行任何操作 (未触发事件 ),则程序就处于等待状态。 整个应用程序就是由彼此独立的事件过程构成。 最终 VB 界面设计如图 : 图 31 VB设计的通讯界面图 菜单部分分为 “打开串口 ”、 “关闭串口 ”、 “配置串口 ”、 “模式 ”四个主菜单 ,点 击 “打开串口 ”和 “关闭串口 ”可以打开和关闭已经配置好的串口,在串口已经打开的情况下点击“打开串口”消息文本框会出现“串口已经打开。 ”的字样,若串口未打开 则打开串口,成功消息文本框显示“串口成功打开。 ”,否则会显示出错信息,例如“串口已被占用。 ” ;在点击“关闭串口”后,若串口本来是关闭的则消息文本框显示“串口已关闭。 ”,否则关闭串口并显示“成功关闭串口。 ” ;点击“配置串口”会弹出串口配置窗口, 弹出的窗口图如下, 用户可以设置各种串口参数,包括波特率、校验方式、数据位、停止位、发送缓冲区、串口号选择,若在串口关闭 的情况下点击了发送按钮,配置窗口也会自动弹出供用户配置;“模式”菜单是用来选择工作模式的,除了用鼠标点击选择哪种模式外也可直接在发送文本框内直接输入“ mode1”或“ mode2”然后发送来切换工作模式。 弹出的配置窗口: 南京师范大学电气与自动化工程学院 基于 BIOS 的嵌入式系统数据通讯开发 11 图 32 通讯界面配置窗口图 在菜单编辑时,如下图所示, 在菜单标题后面加上( amp。 O)就可以将快捷键标在菜单上,用户可以同时按下 ALT+快捷键字母来达到点击菜单的效果。 图 33 菜单编辑器设计图 VB 串口通讯控件 MSComm 简介 MSComm 控件通过串行端口传输和 接收数据,为应用程序提供串行通讯功能。 MSComm 控件在串口编程时非常方便。 Microsoft Communications Control(以下简称MSComm)是 Microsoft 公司提供的简化 Windows 下串行通信编程的 ActiveX 控件,它为应用程序提供了通过串行接口收发数据的简便方法。 具体的来说,它提供了两种处理通信问题的方法:一是事件驱动 (Event- driven)方法,一是查询法。 A. MSComm 控件两种处理通讯的方式 MSComm 控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。 南京师范大学电气与自动化工程学院 基于 BIOS 的嵌入式系统数据通讯开发 12 a) 事件驱动方式 事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。 在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。 在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。 OnComm 事件还可以检查和处理通讯错误。 所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。 在编程过程中,就可以在 OnComm 事件处理 函数中加入自己的处理代码。 这种方法的优点是程序响应及时,可靠性高。 每个 MSComm 控件对应着一个串行端口。 如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。 b) 查询方式 查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。 在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。 如果应用程序较小,并且是自保持的,这种方法可能是更可取的。 例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的 “确定”响应。 B. MSComm 控件的常用属性 MSComm 控件有很多重要的属性,但首先必须熟悉几个属性。 CommPort 设置并返回通讯端口号。 Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。 PortOpen 设置并返回通讯端口的状态。 也可以打开和关闭端口。 Input 从接收缓冲区返回和删除字符。 Output 向传输缓冲区写一个字符串。 下面分别描述: CommPort 属性 设置并返回通讯端口号。 说明 : 在设计时, value 可以设置成从 1 到 16 的任何数(缺省值为 1)。 但是如果用 PortOpen 属性打开一个并不存在的端口时, MSComm 控件会产生错误 68(设备无效)。 注意:必须在打开端口之前设置 CommPort 属性。 RThreshold 属性:在 MSComm 控件设置 CommEvent 属性为 EvReceive 并产生 OnComm 之前,设置并返回的要接收的字符数。 说明 : 当接收字符后,若 Rthreshold 属性设置为 0(缺省值)则不产生 OnComm 事件。 例如,设置 Rthreshold 为 1, 接收缓冲区收到每一个字符都会使 MSComm 控件产生 OnComm 事件。 CTSHolding 属性:确定是否可通过查询 Clear To Send (CTS) 线的状态发送数据。 Clear To Send 是调制解调器发送到相联计算机的信号,指示传输可以进行。 该属性在设计时无效,在运行时为只读。 Msm 控件的 CTSHolding 属性设置值: True Clear To Send 线为高电平。 False Clear To Send 线为低电平。 说明:如果 Clear To Send 线为低电平 (CTSHolding = False) 并且超时时,MSComm 控件设置 CommEvent 属性为 EventCTSTO (Clear To Send Timeout) 并产生 OnComm 事件。 Clear To Send 线用于 RTS/CTS (Request To Send/Clear To Send) 硬件握手。 如果需南京师范大学电气与自动化工程学院 基于 BIOS 的嵌入式系统数据通讯开发 13 要确定 Clear To Send 线的状态, CTSHolding 属性给出一种手工查询的方法。 SThreshold 属性: MSComm 控件 设置 CommEvent 属性为 EvSend 并产生 OnComm 事件之前,设置并返回传输缓冲区中允许的最小字符数。 说明:若设置 Sthreshold 属性为 0(缺省值),数据传输事件不会产生 OnComm 事件。 若设置 Sthreshold 属性为 1,当传输缓冲区完全空时, MSComm 控件产生 OnComm 事件。 如果在传输缓冲区中的字符数小于 value, CommEvent 属性设置为 EvSend,并产生 OnComm 事件。 EvSend 事件仅当字符数与 Sthreshold 交叉时被激活一次。 例如,如果 Sthreshold 等于 5,仅当在输出队列中字符数从 5 降到 4 时, EvSend 才发生。 如果在输出队列中从没有比 Sthreshold 多的字符, EvSend 事件将绝不会发生。 Handshake 属性 常数值描述 : None 0 无握手。 XonXoff 1 XOn/Xoff 握手。 RTS 2 Requesttosend/clea。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。