(电力系统及其自动化专业论文)基于armμclinux的串口设备联网服务器开发.pdf_第1页
(电力系统及其自动化专业论文)基于armμclinux的串口设备联网服务器开发.pdf_第2页
(电力系统及其自动化专业论文)基于armμclinux的串口设备联网服务器开发.pdf_第3页
(电力系统及其自动化专业论文)基于armμclinux的串口设备联网服务器开发.pdf_第4页
(电力系统及其自动化专业论文)基于armμclinux的串口设备联网服务器开发.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西南交通大学硕士研究生学位论文第1 i 页 a b s t r a c t i nt h ep o w e rs y s t e ma u t o m i z a t i o na n do t h e ri n d u s t r yc o n t r o lf i e l d s , m a n y d e v i c e ss t i l lu s es e r i a lp o r tt oc o m m u n i c a t ee a c ho t h e r s e r i a lp o r t i sw i d e l yu s e df o ri t sf a c i l i t y ,r e l i a b i l i t y , a n da b i l i t y h o w e v e r ,t h em o s t i m p o r t a n tw e a k n e s so f s e r i a lp o r ti st h a ti tc a n tb en e t w o r k e da n dc a n t b ea c c e s s e df r o ml o n gd i s t a n c e ,w h i c hi st h ef o u n d a t i o no fi n d u s t r y c o n t r o la u t o m a t i o n t h e s e y e a r s ,p e o p l e a r e l o o k i n gf o r al o w - c o s t s o l u t i o nt oe n h a n c et h en e t w o r k a b i l i t yo f o l dd e v i c e s s e r i a l p o r t n e ts e r v e ri sas t a n d a l o n e u n i tt o p r o v i d en e t w o r k a b i l i t yf o rs e r i a l d e v i c e s i tt r a n s f o r m st h ec o m m u n i c a t i o nd a t as t y l e b e t w e e nt h eh o s ta n ds e r i a ld e v i c e s ,a n dp a c k a g e st h es e r i a ld a t ai n t o t c p i p d a t a g r a mt o m a k ei t p o s s i b l e t ot r a n s m i tt h ed a t a t h r o u g h n e t w o r k t h i sp a p e rd e s c r i b e st h es y s t e md e s i g na n dd e v e l o p m e n tp r o c e s so f t h es e r i a lp o r tn e ts e r v e rt h a tb a s e do nt h ea r m p r o c e s s o ra n di t c l i n u x e m b e d d e d o s ,m a i n l y i n c l u d et h r e e p a r t s p a r t o n ed e s c r i b e st h e h a r d w a r ed e s i g na n di m p l e m e n t ,a sw e l la st h ee m b e d d e ds y s t e md e s i g n s u m m a r yt h a t b a s e do nt h ea r mp l a t f o r m p a r tt w oi sa b o u tt h e f i r m w a r e d e v e l o p m e n t ,t a l k s a b o u tt h eb u i l do fe m b e d d e di _ t c l i n u x e n v i r o n m e n t ,t h ed e s i g no ft l l 6 c 5 5 4u a r t d e v i c ed r i v e r ,a n ds o m e s k i l l si nt h eu s eo fs e m a p h o r ea n dm u l t i t h r e a d p a r tt h r e ef o c u so nt h e w i n d o w sd e v i c ed r i v e rd e v e l o p m e n to ft h en e ts e r v e r ,t a l ka b o u tb a s i c s t r u c t u r ea n dd e s i g ng u i d eo ft h ew d md e v i c ed r i v e r , t h ev i r t u a ls e r i a l p o r td r i v e rc o n n e c t e d w i t hn e t w o r kd r i v e ri sd i s c u s s e di nd e t a i lh e r e a t l a s t ,t h ef u n c t i o nt e s ta n dp e r f o r m a n c et e s tr e s u l to ft h i sn e ts e r v e ri s s h o w n k e yw o r d s :a r m ,p c l i n u x 。w d md e v i c ed r i v e r ,v i r t u a ls e r i a lp o r t 西南交通大学硕士研究生学位论文第1 页 1 1 研究背景 第1 章绪论 在电力系统自动化控制及其他工业控制、民用设备如商场销售系 统等领域,众多设备的对外通讯接口仍然是低速串口。串口由于其 易用性、可靠性及相对于工控设备来说足够高的通信能力而长盛不 衰。以电力系统为例:大量的柱上开关、无功补偿装置、抄表装置、 控制器等带有r s 一2 3 2 4 2 2 4 8 5 串行通讯接口的设备,现有系统中这 些设备大部分都没有实现集中监控,只能作到本地显示和控制,只 有少部分关键点采用了电话拨号的方式实现了远程监控,但无法作 到实时监控。因此现有系统的缺点是:无法集中,全面,准确而实 时地监控数据。 随着以太网在商业领域的大规模使用以及网络自动化强劲势头 的到来,用户与供应商迫切需要在任何时间和任何地点都可以实时 访问数据和进行控制,做到远程快速故障分析与处理、设备的远程 维护以便提高供电质量,改善用电指标,提高供电企业的工作效率 并降低整体成本。 在配网自动化中r t u f t u t t u 之间的通讯连接正在从传统的串 行通讯、无线通讯和电力线通讯向以太网方向转变。对于电力系统 自动化来说,以太网的通讯介质最常用的是光纤,与办公环境经常 采用的双绞线相比,采用光纤可以实现长距离通讯和高的抗电磁干 扰能力。 通讯采用以太网,但是大量的r t u f t u t t u 设备仍然只有串口进 行通讯,如何将这些串口设备连接到网络上呢? 如何保护电力企业 已经在这些设备上投入的大量资金呢? 显然,完全换掉这些串口通 讯的智能设备是既不经济也不可行的。针对这些电力配网自动化的 实际需求,采用申口设备联网服务器就是解决这些问题的最佳解决 方案。 西南交通大学硕士研究生学位论文第2 页 1 2 研究内容 论文设计的串口设备联网服务器是一个可以为r s 一2 3 2 串口设备 提供联网能力的设备联网服务器。装置主要完成主机与串口设备问 交流数据的过滤与转发功能,将r s - 2 3 2 串口数据重新组织成t c p i p 协议网络数据,使设备数据可以在 n t e r n e t 或i n t r a n e t 上流通、 共享。具体功能描述如下: ( 远程、本地) 主机可以如操作本机串口一样通过t c p i p 网络 对串口设备进行远程数据读取,资料处理和数据多点传输, 即串口设备原有的主机方应用程序不需任何修改即可重新利 用: 支持主机以w e b 方式及t e l n e t 方式登录修改配置; 可在服务器装置上直接设置i p 地址: 自动检测l o 1 0 0 m b p se t h e r n e t 网络; 可同时操作8 个串口设备。 串口设备联网服务器装置广泛应用于工业设备联网自动化、门 禁考勤管理、商场销售系统联网自动化、远程影像传输等众多领域。 如图l _ l 所示: 囤卜l + 口设备联暇服务嚣鼻型应用 西南交通大学硕士研究生学位论文第3 页 本论文完成一个串口联网服务器装置的完整产品设计,主要包括 设备硬件设计、设备固件程序设计、主机驱动程序设计三方面。 1 以3 2 位a r m 7 微处理器为核心搭建硬件平台,为以太网与串 口间的数据转发处理提供足够强劲的硬件性能支持; 2 编写基于g c l i n u x 嵌入式操作系统的u a r t ( 通用串行异步传 输) 扩展芯片驱动程序及数据转发服务程序,充分利用l i n u x 操作系统成熟的t c p i p 网络协议以及多线程应用程序处理 能力,以保证通讯数据的可靠转发及实时性能。 3 主机方以w i n d o w sw d m 驱动程序的方式虚拟串口设备,避免 原有串口应用程序的修改工作;虚拟串口驱动程序与网卡驱 动程序间通过t d i ( 传输驱动程序接口) 接口相连。 1 3 论文结构安排 后续章节内容安排: 第2 章:硬件平台设计与实现。根据设备功能及性能要求进行 设备硬件设计,并简要介绍了a r m 微处理器的结构和应用开发方 法,以及实际设计调试中的心得与体会。 第3 章:设备固件程序设计。首先提出固件程序的总体设计思 想,而后结合具体设计过程,介绍c l i n u x 开发环境的建立、 t l l 6 c 5 5 4 设备驱动程序的开发、c l i n u x 环境下的u d p ( 用户数据 报协议) s e r v e r 和p c 端u d pc l i e n t 应用程序的编写以及信号量和 多线程的应用。最后对整个设备数据转发程序进行完整描述。 第4 章:设各驱动程序设计。阐述设备驱动程序的总体结构及 设计思路,对驱动程序的分层结构、数据流程、开发方法,以及虚 拟串口驱动程序与网卡驱动程序之间的连接方式进行了详细描述, 并介绍了该驱动程序的加载方式和使用方法。 第5 章:试验验证及结果。编写p c 端试验程序,对设备进行功 能和性能测试。 结论:对论文工作做结论性概括,并归纳其不足以及进一步深 入的工作方向。 西南交通大学硕士研究生学位论文第4 页 第2 章系统方案设计 2 1 硬件方案设计 串口设备联网服务器主要完成以太网与串口设备间交流数据的 过滤与转发功能。根据这个功能要求确定其硬件结构原理图如图2 - i 所示: 图2 - 1 串口设备联网服务嚣硬件蛄构原理目 各主要模块基本组成: 微处理器m c u :采用s a m s u n g 公司生产的a r m t t d m i 内核 $ 3 c 4 5 1 0 b 处理器; i o i o o m 以太网接口:用一片r t l 8 2 0 1 与$ 3 c 4 5 i o b 片内的m a c 控制器一起组成以太网接口电路,并通过网络隔离变压器与 r j 4 5 以太网口相连; f l a s h 存储器:采用一片3 9 v f l 6 0f l a s h 存储器,大小为2 m 字节,用于存放已调试好的用户应用程序、嵌入式操作系统 西南交通大学硕士研究生学位论文第5 页 以及其他在系统掉电后需要保存的用户数据等; s d r a m 存储器:用两片h y 5 7 v 6 4 1 6 2 0 h g 并联构建3 2 位的s d r a m 存储器系统,共1 6 m 字节,可满足嵌入式操作系统及各种相 对较复杂的算法的运行要求; j t a g 接口:可对芯片内部的所有部件进行访问,通过该接口 可对系统进行调试、编程等: 多串口扩展:用两片t l l 6 c 5 5 4 扩展出八个串口,以满足同时 连接多台串口设备的需要。 2 2 固件程序方案设计 串口设备联网服务器固件程序的主要功能就是实现对串口数据 和网络数据的重组与转发。本地主机或远端主机上的应用程序以原 有的操作本机串口的方式与连接在串口网桥上的设备进行信息交 互,主机上的设备驱动程序将应用程序要求发送的串口数据以及对 应串口号等辅助信息转换为网络数据包,发送到以太网上:设备固 件程序接收到经以太网传送过来的数据包后,将数据包解包并提取 其中的串口命令数据以及目标串口号等信息,丽后重组成串口数据 并发送到相应串口。固件程序处理串口设备上传给本地主机或远端 主机的数据的方式与上述过程相反。 设备固件程序软件结构如图2 2 所示。 系统采用u c i n u x 操作系统。它具有成熟的t c p i p 网络协议支 持以及多线程应用程序处理能力,保证了串口设备联网服务器通讯 数据的可靠转发及实时性能。 西南交通大学硕士研究生学位论文第6 页 图2 - 2 设备固件程序软件蛄构图 2 3 设备驱动程序方案设计 对p c 端的应用程序而言,对串口设备联网服务器的直接操作可 以通过网络驱动程序进行,一般的操作系统如w i n d o w s 、l i n u x 等都 会提供功能齐全的a p i 函数供应用程序调用,以收发网络数据。但 是,现实中存在的大量串口设备应用程序都是直接操作串口驱动程 序的,即使用串口a p i 函数或一些封装了的组件来与串口设备交互 数据。因此,有必要采取一些方法,在网络驱动程序与串口设备应 用程序问建立一个接口。 该接口对数据起承上启下的作用: “承上”功能:对串口设备应用程序,它表现为串口驱动程 序,具有同真实串口一样的表现形式和操作模式,例如: w i n d o w s 设备管理器中存在虚拟的通讯端口( c o m n ) ,应用 程序可以用相同的函数来操作这些虚拟的端口; “启下”功能:对网络驱动程序,它可以将应用程序发送的 串口格式数据重新组成网络数据包,如u d p 数据报等,传递 给网络驱动程序。反之,网络驱动程序接收到的数据包,也 要由这个接口按照数据包的格式提取出来,方便应用程序以 读取串口数据的方式获得。 西南交通大学硕士研究生学位论文第7 页 考虑到绝大多数的串口设备应用程序都是运行在w i n d o w s 操作 系统中,所以本文主要讨论w i n d o w s 平台下设备驱动程序的实现。 通过对w i n d o w sw d m 驱动程序结构的分析,建立如图2 - 3 所 示的设备驱动程序结构。主要由两个部分组成:虚拟串口设备驱动 程序和网络传输驱动程序接口。其中虚拟串口设备驱动程序完成“承 上”功能,网络传输驱动程序接口完成“启下”功能。 田2 - 3 设备驱动程序总体蛄构图 以下各章节分别讨论上述系统方案的具体实现。 西南交通大学硕士研究生学位论文第8 页 第3 章硬件平台设计 3 1c p u 系统及接口电路设计 3 1 1c p u 系统核心设计 串口设备联网服务器的系统核心是一颗韩国三星电子生产的 $ 3 c 4 5 1 0 b3 2 位r i s c ( 精简指令集计算机) 微控制器。该微控制器 专为以太网通信系统的集线器和路由器而设计,具有低成本和高性 能的特点。 $ 3 c 4 5 1 0 b 中内置了a r m 公司设计的1 6 3 2 位a r m 7 t d m i 处理器, 提供了8 k 字节的c a c h e ( 高速缓存) 和以太控制器,内置2 通道的 h d l c ( 高级数据链路控制) ,2 个u a r t ( 通用异步收发) 通道,内置 3 2 位定时器和1 8 个通用可编程i o 端口。$ 3 c 4 5 1 0 b 内部采用3 2 位 系统总线,有1 2 c 接口,还集成了中断控制器、d r a m s d r a m 控制器、 r o m s r a m 和闪存控制器。以上功能特点均集成在此单芯片中,可大 大减少系统成本。 软件方面,$ 3 c 4 5 1 0 b 因内置a r m 7 t d m i 核,可以执行3 2 位的a r m 指令,也可执行1 6 位的t h u m b 指令。 $ 3 c 4 5 i o b 采用3 3 v 电压供电,2 0 8 脚的q f p 封装,操作频率最 高达5 0 m h z 。 除了a r m 7 t d m i 核以外,$ 3 c 4 5 1 0 b 比较重要的片内外围功能模块 包括: 2 个带缓冲描述符( b u f f e rd e s c r i p t o r ) 的h d l c 通道 2 个u a r t 通道 2 个g d m a 通道 2 个3 2 位定时器 1 8 个可编程的i o 口 片内的逻辑控制电路包括: 西南交通大学硕士研究生学位论文第9 页 中断控制器 d r a m s d r a m 控制器 r o m s r a m 和f l a s h 控制器 系统管理器 一个内部3 2 位系统总线仲裁器 一个外部存储器控制器 $ 3 c 4 5 1 0 b 共有2 0 8 只引脚,采用o f f 封装。在硬件系统的设计 中,应当注意芯片引脚的类型,$ 3 c 4 5 1 0 b ( 也包括其他的微处理器) 的引脚主要分为三类,即:输入( i ) 、输出( 0 ) 、输入输出( i o ) 。 输出类型的引脚主要用于$ 3 c 4 5 1 0 b 对外设的控制或通信,由 $ 3 c 4 5 1 0 b 主动发出,这些引脚的连接不会对s 3 c 4 5 1 0 b 自身的运行 有太大的影响。 输入输出类型的引脚主要是$ 3 c 4 5 1 0 b 与外设的双向数据传输 通道。 而某些输入类型的引脚,其电平信号的设置是$ 3 c 4 5 1 0 b 本身正 常工作的前提,在系统设计时必须小心处理。 3 1 2i o i o o m 以太网接口电路 $ 3 c 4 5 1 0 b 内嵌了一个以太网控制器,支持媒体独立接口( m e d i a i n d e p e n d e n ti n t e r f a c e ,m i i ) 和带缓冲d m a 接口( b u f f e r e dd m a i n t e r f a c e ,b d i ) ,可在半双工或全双工模式下提供l o 1 0 0 m b p s 的 以太网接入。在半双工模式下,控制器支持c s m a c d 协议,在全双 工模式下支持i e e e 8 0 2 3m a c 控制层协议。 但$ 3 c 4 5 1 0 b 并未提供物理层接口,因此,需外接一片物理层芯 片以提供以太网的接入通道。常用的单口l o l o o m b p s 高速以太网物 理层接口器件主要有r t l 8 2 0 1 、d m 9 1 6 1 等,均提供m i i 接口和传统 7 线制网络接口,可方便地与$ 3 c 4 5 1 0 b 相连。本设计中使用r t l 8 2 0 1 作为以太网的物理层接口。 西南交通大学硕士研究生学位论文第1 0 页 3 1 3 存储系统设计 3 1 3 1 a r m 体系结构的存储系统介绍 a r m 体系结构将存储器看作是从零地址开始的字节的线性组合。 从零字节到三字节放置第一个存储的字数据,从第四个字节到第七 个字节放置第二个存储的字数据,依次排列。作为3 2 位的微处理器, a r m 体系结构所支持的最大寻址空间为4 g b ( 2 ”字节) 。 a r m 系统管理器使用一组专用的特殊功能寄存器来控制外部存 储器的读,写操作,通过对该组特殊功能寄存器编程,可以设定: 存储器的类型 外部数据总线宽度及访问周期 定时的控制信号( 例如r a s 和c a s ) 存储器组的定位 存储器组的大小 在标准系统配置中访问外设必需的控制信号、地址信号和数据 信号,系统管理器通过设置特殊功能寄存器的值来控制其产生和处 理。特殊功能寄存器也被用于控制对r o m ,s r a m ,f l a s h 组的访问, 同时还能控制对多达四个d r a m 组和四个外部i o 组以及一个特殊 功能寄存器映射区域的访问。 每个存储器组在组内通过基指针( b a s ep o i n t e r ) 寻址。其寻址 范围是6 4 k b ( 1 6 位) ,而基指针本身为1 0 位。因此$ 3 c 4 5 l o b 的最 大可寻址范围是2 2 6 = 6 4 m b ( 或1 6 m 字) 。 在进行系统存储器映射时,注意两个相连的存储器组的地址空 间决不能重叠。图3 1 为$ 3 c 4 5 1 0 b 系统存储器映射。 在上电或系统复位后,所有组的地址指针寄存器都被初始化到 其缺省值。这时,所有的组指针( r o m ,s r a m f l a s h 组0 和特殊功 能寄存器组除外) 都被清零。这意味着:除r o m s r a m ,f l a s h 组0 和特殊功能寄存器组以外,所有其它组在系统启动时都是未被定义 的。这一点很重要,用户在进行程序设计时,一般总是要首先通过 配置相应寄存器,定义系统的存储空间。 西南交通大学硕士研究生学位论文第11 页 冒3 - l $ 3 c 4 5 1 0 b 系统存储嚣映射 r o m ,s r a m f l a s h 组0 的尾指针和基指针的复位值分别为0 x 2 0 0 和0 x 0 。这意味着系统复位后将自动定义r o m ,s r a m ,f i a s h 组0 的 地址空间为3 2 m b ,实际地址范围为0 x 0 0 0 0 ,0 0 0 0 0 x 0 2 0 0 ,0 0 0 0 1 。 r o m ,s r a m f l a s h 组0 的这种初始化定义使得系统在上电或复位后, 将系统的控制权交给了由用户编写的启动代码,当然这些启动代码 应存放在外部r o m 中的,并映射到r o m s r a m f l a s h 组0 。当起 动代码执行时,它执行各种系统初始化任务,并根据应用系统的外 部存储器和设备的实际情况来重新配置系统的存储器映射。 西南交通大学硕士研究生学位论文第1 2 页 特殊功能寄存器组的基址针在系统复位时被初始化为0 x 3 f f 0 0 0 0 一般不再改动。 图3 - 2 是在系统启动或复位时的系统存储器映射。 围3 - 2 幕统复位时的存储嚣映射 表3 - 1 为系统管理器对应的寄存器,系统的存储器映射可通过对 这些寄存器的配置来完成。 表3 - l 系统管理嚣对应的寄存器 寄,器i 穆量操 乍描述复t 值 s y s c f g0 x 0 0 0 0读写系统配置寄存器o x 3 7 f f f f 9 1 c l k c o n0 x 3 0 0 0读,写时钟控制寄存器0 x 0 0 0 0 0 0 0 0 e x t a c o n 00 x 3 0 0 8读写外部i o 时序寄存器10 x o 0 0 0 0 0 0 0 e x t a c o n lo x 3 0 0 c读写外部i o 时序寄存器20 x 0 0 0 0 0 0 0 0 e x t d b w t ho x 3 0 1 0读写分组数据总线的宽度设置0 x 0 0 0 0 0 0 0 0 寄存器 r o m c o n o0 x 3 0 1 4读写r o m a r a m 伊l a s h 组0 o x 2 0 0 0 0 0 6 0 控制寄存器 r o m c o n l0 x 3 0 1 8读写r o m a r a m f f l a s h 组1o x o o o o 0 0 6 0 控制寄存器 r o m c o n 20 x 3 0 l c读写r o m a r a m ,f l a s h 组2o x 0 0 0 0 0 0 6 0 控制寄存器 r o m c o n 30 x 3 0 2 0读写r o m ,a r a m f l a s h 组30 x 0 0 0 0 0 0 6 0 控制寄存器 西南交通大学硕士研究生学位论文第1 3 页 r o m c o n 40 x 3 0 2 4读写r o m a r a m ,f l a s h 组4o x 0 0 0 0 0 0 6 0 控制寄存器 r o m c o n 50 x 3 0 2 8 读写r o m ,a r a m ,f l a s h 组50 x 0 0 0 0 0 0 6 0 控制寄存器 d r a m c o n o0 x 3 0 2 c读,写d r a m 组0 控制寄存器0 x 0 0 0 0 0 0 0 0 d r a m c o n l0 x 3 0 3 0 读,写d r a m 组1 控制寄存器0 x 0 0 0 0 0 0 0 0 d r a m c o n 20 x 3 0 3 4读写d r a m 组2 控制寄存器0 x 0 0 0 0 0 0 0 0 d r a m c o n 30 x 3 0 3 8读写d r a m 组3 控制寄存器0 x 0 0 0 0 0 0 0 0 r e f e x t c o0 x 3 0 3 c读写刷新与外部i o 控制寄存0 x 0 0 0 0 8 3 f d n器 3 1 3 2f i a s h 存储器接口电路 f l a s h 存储器具有低功耗、大容量、擦写速度快、可整片或分扇 区在系统编程( 烧写) 、擦除等特点,因而在各种嵌入式系统中得到 了广泛的应用。 系统中用了一片3 9 v f l 6 0f l a s h 存储器,其单片存储容量为1 6 m 位( 2 m 字节) ,- r 作电压为2 7 v 3 6 v ,采用4 8 脚t s o p 封装或4 8 脚f b g a 封装,1 6 位数据宽度。3 9 v f l 6 0 仅需单3 v 电压即可完成在 系统的编程与擦除操作,通过对其内部的命令寄存器写入标准的命 令序列,可对f l a s h 进行编程( 烧写) 、整片擦除、按扇区擦除以及 其他操作。 f l a s h 存储器在系统中通常用于存放程序代码,系统上电或复位 后从此获取指令并开始执行,因此,应将存有程序代码的f 1 a s h 存 储器配置到r o m s r a m f l a s hb a n k 0 ,即将$ 3 c 4 5 1 0 b 的n r c s ( p i n 7 5 ) 接至h y 2 9 l v l 6 0 的c e # 端。 h y 2 9 l v l 6 0 的r e s e t # 端接系统复位信号; 0 e # 端接$ 3 c 4 5 1 0 b 的n 0 e ( p i n 7 2 ) ; w e # 端$ 3 c 4 5 1 0 b 的n w b e ( p i h i 0 0 ) ; b y t e # 上拉,使h y 2 9 l v l 6 0t 作在字模式( 1 6 位数据宽度) ; r y b w 指示h y 2 9 l v l 6 0 编程或擦除操作的工作状态,但其工作状 态也可通过查询片内的相关寄存器来判断,因此可将该引脚悬空; 地址总线 a 1 9 a o 与$ 3 c 4 5 1 0 b 的地址总线 a d d r l 9 a 叻r 0 相 连; 1 6 位数据总线 d t ) 1 5 “d q 0 与$ 3 c 4 5 1 0 b 的低1 6 位数据总线 西南交通大学硕士研究生学位论文第1 4 页 x d a t a l5 x d a t a o 相连。 另外,a r m 通过设置数据宽度寄存器来设定与特定外部存储器 和外部i 0 组相对应的数据宽度。 e x t d b w t h 寄存嚣 寄罕器偏; 地址操作描述 复1 值 e x t d b w t h0 x 3 0 1 0 读写配置每组的数据总o x o o o o o o o o 线宽度 蝌0 目删 所以应将$ 3 c 4 5 1 0 b 的b o s i z e 1 :0 置为1 0 ,选择 r o m s r a m f l a s hb a n k o 为1 6 位工作方式。 3 1 3 3 s d r a m 接口电路 s d r a m 在系统中主要用作程序的运行空间,数据及堆栈区。当系 统启动时,c p u 首先从复位地址起始处开始读取启动代码,在完成 系统的初始化后,程序代码一般应调入s d r a m 中运行,以提高系统 的运行速度,同时。系统堆栈、用户堆栈以及运行数据也都放在s d r a m 中。 要在系统中使用s d r a m ,要求微处理器具有刷新控制逻辑,或在 系统中另外加入刷新控制逻辑电路。$ 3 c 4 5 1 0 b 及其他一些a r m 芯片 在片内具有独立的s d r a m 刷新控制逻辑,可方便地与s d r a m 相连接。 h y 5 7 v 6 4 1 6 2 0 h g 为1 6 位数据宽度,单片容量为8 m 字节,为充分发 挥3 2 位c p u 的数据处理能力,设计中用两片h y 5 7 v 6 4 1 6 2 0 h g 并联构 成3 2 位的s d r a m 存储器系统,共1 6 m 字节的s d r a m 空间,可满足运 行p c l i n u x 操作系统及各种相对较复杂的算法的运行要求。 两片h y 5 7 v 6 4 1 6 2 0 并联构建3 2 位的s d r a m 存储器系统,其中一 片为高1 6 位,另一片为低1 6 位,可将两片h y 5 7 v 6 4 1 6 2 0 作为一个 整体配置到d r a m s d r a mb a n k o d r a m s d r a mb a n k 3 的任一位置, 般配置到d r a m s d r a mb a n k o ,即将$ 3 c 4 5 1 0 b 的n s d c s ( p i n 8 9 ) 接至两片h y 5 7 v 6 4 1 6 2 0 的c s 端。 西南交通大学硕士研究生学位论文第1 5 页 3 i 4j t a g 接口电路 j t a g ( j o i n tt e s ta c t i o ng r o u p ) 是一种国际标准测试协议,主 要用于芯片内部测试及对系统进行仿真、调试。j t a g 技术是一种嵌 入式调试技术,它在芯片内部封装了专门的测试电路,可以通过专 用的j t a g 测试软件对芯片内部节点进行测试。目前大多数比较复杂 的器件都支持j t a g 协议,如a r m 、d s p 、f p g a 器件等。j t a g 接口常 用于实现i s p ( i n s y s t e mp r o g r a m m a b l e ,在系统编程) 功能,如 对f l a s h 器件进行编程等。通过j t a g 接口,可对芯片内部的所有部 件进行访问,因而是开发调试嵌入式系统的一种简洁而高效的手段。 3 1 5 多串口扩展 3 1 5 1 设计思路 串口设备联网服务器提供了八个标准r s 2 3 2 串口以连接多台串 口设备。当然,$ 3 c 4 5 1 0 b 不可能提供这么多个串口,因此需要进行 扩展。 多串口扩展原理如图3 3 所示。 围3 - 3 多串口扩展原理图 t l l 6 c 5 5 4 是t i 公司的产品,集成度高,性能稳定,其内部包含 了四个可独立操作的可编程异步收发单元1 6 c 5 5 0 ,它们共用了数据 线d7 d 0 、内部寄存器地址线a 2 a o 、读写信号线f o r 和l o w 、 西南交通大学硕士研究生学位论文第1 6 页 d m a 读写控制t x r d y 和r x r d y 、复位r e s e t 、时钟x t l i 和x t l 2 。每 个收发单元都有自己的片选信号c s 、中断请求i n t 、数据输出t x 、 数据输入r x 及m o d e m 逻辑控制信号c t s 、d c d 、d s r 、d t r 、r i 、r t s 。 其内部功能模块如图3 4 所示。 x t 魁1 x t 上2 1鑫 ”i 7 j 乱栩:l 黼i 弑“0 攘域 恕瓣麓 拄誓重匕 二j 们酽b i l 控嚣i 串誓l - | - _ 一= i 们铲匕 l l 。 辩0 细 蕞纛i 圣* | 一札1 铲卜 撞崩蔓鼙 图3 - 4t l l 6 c 5 5 4 内部功能模块 每一个内部的异步收发单元都等同于一个1 6 5 5 0 ,它向下兼容 1 6 4 5 0 ,包含了1 6 字节的先进先出寄存器,从而减少了对c p u 的中 断次数。可编程设定的波特率最大可达i m b p s ,接口的字符结构可 由用户选择,自动完成起始位、停止位、奇偶校验位的加入和删除, 具有可程序化中断控制和完整的m o d e m 控制逻辑功能。t l l 6 c 5 5 4 具 体功能及操作细节参考文献 2 。 m a x i m 公司的m a x 2 0 2 芯片是标准的r s 2 3 2 电平转换器,是符合 r s 2 3 2 通信标准的接口芯片,该芯片功耗低,集成度高,使用单一 5 v 电源,每片有2 个驱动器和2 个接收器,具有2 组接收和发送通 道,接口电路简单,可靠性高,可实现t t l 电平和r s 2 3 2 电平的直 接转换。 串口数据信号通过m a x 2 0 2 转换成t t l 电平,再通过t l l 6 c 5 5 4 输出中断请求。八个串口的中断请求或起来产生i r q 信号i n t r e q , 经c p l d 再与c p u 的中断控制器相连。 设计中使用c p l d 主要是为了解决多串口共享一个中断源时必然 馓 嫩鼹黔黼 黛二 西南交通大学硕士研究生学位论文第1 7 页 产生的中断重叠问题。为提高可靠性,系统中的八个串口均采用中 断方式进行数据处理,并且八个串口共享一个中断源。在共用的中 断服务程序中,程序按顺序对八个串口进行一次数据检测,若发现 某个串口有数据,则进行相应处理。但这样一来,将会产生如下问 题:例如,中断服务程序刚对串口1 进行检测,没有发现数据,则 转向串口2 进行检测,发现串口2 有数据,因此程序将进行串口2 的数据处理,如果这时串口1 发生中断请求,c p u 无法保存该请求 脉冲,则串口1 的中断请求将被忽略。事实上,在这种情况下,所 有在中断服务程序执行期间发生的中断请求都将被忽略而得不到响 应。 为了解决这个问题,可以在共享中断源后面加一个用c p l d 实 现的逻辑电路。该逻辑电路由两部分组成,第一部分是一个可寻址 的寄存器i n t e n ,作为共享中断的允许位。第二部分是一个状态机 逻辑电路,该电路共有三个状态:s 1 是等待状态,该状态下 i n t e n = t ,只要任何一个串口产生中断请求,c p u 将马上响应该中 断;s 2 是中断服务状态,中断服务程序一开始执行,马上将i n t r n 设置为0 ,以避免状态转移,退出中断服务程序时,再将i n t e n 设 置为1 ,中断服务程序执行期间产生的串口中断请求由i n t r e q 锁 存;s 3 为延时状态,延时5 0 u s ,以确保中断服务程序完全退出。系 统中断响应时序图参见图3 - 5 。 i n t r e q i n t e n d l y - i r q _ 厂厂_ 厂 兰扪 图3 5 中断响应时序圉 状态机逻辑电路状态图如图3 6 所示: 亘壹至塑太掌硕士研究生学位论文第1 8 页 i n t e n = ( ) 或i n t r e q = 0 一、1 n t 肇? q 2 弋 n s o 掣! ! 型:! 1 0 0 0l s 7 、d l y i r q 2 0 1 0 0 n t e n - 0 s ,世竺:s : 0 0 l 0 1 1 篁卜_ ( 釜卜 圈3 - 6 状态机逻辑电路状态图 3 1 5 2 外部地址译码 s 4 1 1 0 n t i - , n i 与某些a r m 芯片不同,8 3 c 4 5 1 0 b 应用系统的地址总线的连接 方式相对简单,它可根据外部存储器的宽度决定外部地址译码方法。 由于a r m 7 t d m i 采用3 2 位地址总线,所有的地址都可以看作字节 地址。地址总线提供4 g b 的线性寻址空间,当发出字访问信号时, 存储系统忽略低2 位a t :o 】,当发出半字访问信号时,存储系统忽 略低位a 0 】,基于以上原因,某些a r m 系统在与存储器接口时, 地址总线的连接需要错开,而8 3 c 4 5 1 0 b 则通过一个片内的地址总 线生成部件,隐藏该过程,用户在设计系统时,只需将s 3 c 4 5 1 0 b 的地址总线与存储器的地址总线一一对应连接即可( 即$ 3 c 4 5 1 0 b 的a 0 】与外部存储器的a 0 】对齐) 。表3 2 和图3 7 说明了该过程。 表3 - 2 地址总线生成 数据总;宽度外部地址引脚,a d d r :1 :o 】可访问的存靠空间 8 位a 2 1 - a 0 ( 内部)4 m 字节 1 6 位a 2 1 a 1 ( 内部)4 m 半字 3 2 位a 2 1 a 2 ( 内部)4 m 字 西南交通大学硕士研究生学位论文第1 9 页 囤3 - 7 地址总线变抉 由于我们将以8 位数据宽度访问t l l 6 c 5 5 4 上的寄存器,所以要 将e x t d b v t h 寄存器的 2 1 :2 0 位设置为0 1 ( 代表8 位宽度) 。 $ 3 c 4 5 1 0 b 用r e f e x t c o n 寄存器来设定外部i o 组0 的基指针值。 r 日f e x 代o h l 阳n “n c o u 晡h 一” t rv 咚掣器船 c t c 措teso00 o o b f r 寄存器的 9 :0 指示外部i o 组0 基指针( 基地址) ,该设置值 左移1 6 位即为外部i 0 组0 的起始物理地址。外部i o 组0 的结束 物理地址为该设置值左移1 6 位+ 1 6 k b l 。4 个外部i o 组的地址空 间连续,每组均固定大小为1 6 k b ,因此,通过该基指针可以计算出 其他3 个外部i o 组的起始和结束地址。设计中设定该值为0 x 3 6 0 , 所以t l l 6 c 5 5 4 寄存器的基地址为0 x 3 6 0 0 0 0 0 。 3 2 硬件平台设计要点及调试 3 2 1p c b 设计要点 在系统中,$ 3 c 4 5 1 0 b 的片内工作频率为5 0 m h z ,其以太网接i :1 电路的工作速率更高达1 0 0 m h z 以上,因此,在印刷电路板的设计 西南交通大学硕士研究生学位论文第2 0 页 过程中,应该遵循一些高频电路的设计基本原则,否则会使系统工 作不稳定甚至不能正常工作。印刷电路板设计过程中应注意以下几 个方面: 注意电源的质量与分配。 同类型信号线应该成组、平行分布。 3 2 2 电源质量与分配 在设计印刷电路板时,能给各个单元电路提供高质量的电源,就 会使系统的稳定性大幅度的提高。但如何能提高电源的质量,常用 的手段有以下几个: 1 、电源滤波 为提高系统的电源质量,消除低频噪声对系统的影响,一般应 在电源进入印刷电路板的位置和靠近各器件的电源引脚处加上滤波 器,以消除电源的噪声,常用的方法是在这些位置加上几十到几百 微法的电容。 同时,在系统中除了要注意低频噪声的影响,还要注意元器件 工作时产生的高频噪声,一般的方法是在器件的电源和地之问加上 0 1 u f 左右地电容,可以很好地滤出高频噪声的影响。 2 、电源分配 实际的工程应用和理论都证实,电源的分配对系统的稳定性有 很大的影响,因此,在设计印刷电路板时,要注意电源的分配问题。 在印刷电路板上,电源的供给一般采用电源总线( 双面板) 或电源 层( 多层板) 的方式。电源总线由两条或多条较宽的线组成,由于 受到电路板面积的限制,一般不可能布得过宽,因此存在较大的直 流电阻,但在双面板得设计中也只好采用这种方式了,只是在布线 的过程中,应尽量注意这个问题。 在多层板的设计中,一般使用电源层的方式给系统供电。该方 式专门拿出一层作为电源层而不再在其上布信号线。由于电源层遍 及电路板的全面积,因此直流电阻非常的小,采用这种方式可有效 的降低噪声,提高系统的稳定性。 西南交通大学硕士研究生学位论文第2 l 页 3 2 3 同类型信号线的分布 在各种微处理器的输入输出信号中,总有相当一部分是相同类 型的,例如数据线、地址线。对这些相同类型的信号线应该成组、 平行分布,同时注意它们之间的长短差异不要太大,采用这种布线 方式,不但可以减少干扰,增加系统的稳定性,还可以使布线变得 简单,印刷电路板的外观更美观。 本系统的印刷电路板设计中,成组的信号线主要是数据线和地 址线,可在元器件位置确定后,首先完成它们的布线,尽可能做到 成组、平行分布,同时应尽可能的短。然后在进行各种控制信号的 布线,最后处理电源和接地引脚。 西南交通大学硕士研究生学位论文第2 2 页 第4 章设备固件程序设计 4 1 儿c li f l u x 软件开发概述 近年来,嵌入式技术发展十分迅速。“c 1 i n u x 以其优异的性能、 免费开放的代码等优点,获得众多嵌入式开发者的青睐。我们知道, 在标准l i n u x 平台上,已经有了非常丰富的、开源的应用程序,使 得开发者很容

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论