0引言对于一个程序员,如果要从头开始完全由自己来编写一个用于通信的应用程序,必须对相关的网络协议及其它的一些底层技术有较深入的了解,编程难度比较大。Visual Basic(VB)为广大程序员提供了基于WindowsSockets网络编程接口的Winsock控件,它封装了所有繁琐的技术细节,并提供了访问TCP和UDP网络服务的方便途径,只需通过设置控件的属性并调用其方法就可轻易连接到一台远程计算机中,并且还可以实现双向交换数据。因此,利用VB的Winsock 控件来编写基于TCP和UDP协议的通信程序,可以降低编程难度,简化应用程序。1TCP和UDP协议介绍TCP和UDP是TCP/IP协议中的两个传输层协议,它们使用IP路由功能把数据包发送到目的地,从而为应用程序及应用层协议提供网络服务。TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议。“面向连接”就是在正式通信前必须要与对方建立起可靠的连接,这就好象平时的打电话,必须等线路接通了、对方拿起话筒才能相互通话。一个TCP连接必须要经过三次“对话“才能建立起来,其中的过程非常复杂。UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议,是面向非连接的协议。“面向非连接”就是在正式通信前不必与对方先建立连接,不考虑对方状态就直接发送数据,这就好象平时的发手机短信,不必考虑对方状态,只需要输入对方手机号就行。TCP提供的是面向连接的、可靠的数据流传输,而UDP提供的是面向非连接的、不可靠的数据流传输。面向连接的协议在任何数据传输前就建立好了点到点的连接,面向非连接的协议在数据传输之前不建立连接,而是在每个中间节点对面向非连接的包和数据包进行路由。
上传时间: 2022-06-24
上传用户:
SPI总线协议及SPI时序图详解SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPl,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。上升沿发送、下降沿接收、高位先发送。上升沿到来的时候,sdo上的电平将被发送到从设备的寄存器中。下降沿到来的时候,sdi上的电平将被接收到主设备的寄存器中。假设主机和从机初始化就绪:并且主机的sbuff=0xaa(10101010),从机的sbuff=0x55(01010101),下面将分步对spi的8个时钟周期的数据情况演示一遍(假设上升沿发送数据)。
上传时间: 2022-06-28
上传用户:
随着计算机技术的迅猛发展,受其影响的仪器行业也发生了巨大的变革,即仪器的手动操作使用改为计算机控制自动测试。随着自动测试技术和程控仪器的发展,除了要求物理硬件接口标准化外,也要求软件控制标准化。 硬件方面,从20世纪50代自动测试概念建立起,经过初期专用接口、半专用接口到20世纪80年代中期才普及推广开放式标准接口总线,如RS232串行通信接口总线、GPIB通用接口总线、PXI计算机外围仪器系统总线、VXI块式仪器系统总线等。 软件方面,1987年6月颁布的IEEE488.2(程控仪器消息交换协议)标准首先解决了数据结构方面的问题,但仍将大量的器件语义留给设计者自由定义。1990年4月,国际上九家仪器公司在IEEE488.2基础上提出了SCPI(Standard Commands for Programmable Instruments程控仪器标准命令),才使程控仪器器件数据和命令得到标准化。SCPI的总目标是缩短自动测试系统程序开发时间,保护仪器制造者和使用者双方的硬、软件投资,为仪器控制和数据利用提供广泛兼容的编码环境。 仪器接收到SCPI消息后进行响应:接收字符串消息、词法分析、语法分析、中间代码生成、优化和目标代码生成,语法分析模块的性能直接影响到程控执行效率。为了进一步简化仪器内语法分析模块、提高程控执行效率,本课题提出了在接口电路中加入解析模块的思想,可将控制器发送到仪器的SCPI消息即复杂的ASCII码字符串转变为简单的二进制代码。采用此解析模块将大大简化仪器设计者的软件工作,既能实现仪器语言标准化又能提高仪器对远程 控制的响应速度,这在研究实验室内的自制仪器时将是很有用的。 仪器接口有很多种,本课题主要讨论了RS232和GPIB两种接口。本设计中仪器接口板是独立于仪器的,与仪器单独使用微处理器,若要与仪器连接实现通信只需在两微处理器之间进行通信即可,这样做的目的是:一方面可以不影响仪器的设计和操作,一方面可以实现接口板的通用性和仪器的可换性。针对于RS232接口为一简单接口,我先将工作重心放在软件设计上,主要考虑怎样把复杂的ASCII码字符串解析为简单的二进制代码。针对于GPIB接口,软件设计的主要部分已完成,再把工作重心放在硬件设计上,采用性价比更高的CPID实现GPIB接口芯片NAT9914。为了观察解析结果还加入了LCD显示。本设计在开发通用的、低价的仪器接口板方面做了一个有益的尝试,为进一步的自动测试系统研究打下了基础。 关键词:仪器;SCPI;RS232接口;GPIB接口;CPLD
上传时间: 2013-04-24
上传用户:Andy123456
通用异步收发器(Universal Asynchronous Receiver Transmitter,UART)是一种能同时支持短距离和长距离数据传输的串行通信接口,被广泛应用于微机和外设之间的数据交换。像8251、NS8250、NS16550等都是常用的UART芯片,但是这些专用的串行接口芯片的缺点是数据传输速率比较慢,难以满足高速率数据传输的场合,而更重要的就是它们都具有不可移植性,因此要利用这些芯片来实现PC机和FPGA芯片之间的通信,势必会增加接口连线的复杂程度以及降低整个系统的稳定性和有效性。 本课题就是针对UART的特点以及FPGA设计具有可移植性的优势,提出了一种基于FPGA芯片的嵌入式UART设计方法,其中主要包括状态机的描述形式以及自顶向下的设计方法,利用硬件描述语言来编制UART的各个子功能模块以及顶层模块,之后将其集成到FPGA芯片的内部,这样不仅能解决传统UART芯片的缺点而且同时也使整个系统变得更加具有紧凑性以及可靠性。 本课题所设计的LIART支持标准的RS-232C传输协议,主要设计有发送模块、接收模块、线路控制与中断仲裁模块、Modem控制模块以及两个独立的数据缓冲区FIFO模块。该模块具有可变的波特率、数据帧长度以及奇偶校验方式,还有多种中断源、中断优先级、较强的抗干扰数据接收能力以及芯片内部自诊断的能力,模块内分开的接收和发送数据缓冲寄存器能实现全双工通信。除此之外最重要的是利用IP模块复用技术设计数据缓冲区FIFO,采用两种可选择的数据缓冲模式。这样既可以应用于高速的数据传输环境,也能适合低速的数据传输场合,因此可以达到资源利用的最大化。 在具体的设计过程中,利用Synplify Pro综合工具、ModelSim仿真工具、ISE集成的软件开发环境中对各个功能模块进行综合优化、仿真验证以及下载实现。各项数据结果表明,本课题中所设计的UART满足预期设计目标。
上传时间: 2013-08-02
上传用户:rocketrevenge
FPGA作为新一代集成电路的出现,引起了数字电路设计的巨大变革。随着FPGA工艺的不断更新与改善,越来越多的用户与设计公司开始使用FPGA进行系统开发,因此,PFAG的市场需求也越来越高,从而使得FPGA的集成电路板的工艺发展也越来越先进,在如此良性循环下,不久的将来,FPGA可以主领集成电路设计领域。正是由于FPGA有着如此巨大的发展前景与市场吸引力,因此,本文采用FPGA作为电路设计的首选。 @@ 随着FPGA的开发技术日趋简单化、软件化,从面向硬件语言的VHDL、VerilogHDL设计语言,到现在面向对象的System Verilog、SystemC设计语言,硬件设计语言开始向高级语言发展。作为一个软件设计人员,会很容易接受面向对象的语言。现在软件的设计中,算法处理的瓶颈就是速度的问题,如果采用专用的硬件电路,可以解决这个问题,本文在第一章第二节详细介绍了软硬结合的开发优势。另外,在第一章中还介绍了知识产权核心(IP Core)的发展与前景,特别是IP Core中软核的设计与开发,许多FGPA的开发公司开始争夺软核的开发市场。 @@ 数字电路设计中最长遇到的就是通信的问题,而每一种通信方式都有自己的协议规范。在CPU的设计中,由于需要高速的处理速度,因此其内部都是用并行总线进行通信,但是由于集成电路资源的问题,不可能所有的外部设备都要用并行总线进行通信,因此其外部通信就需要进行串行传输。又因为需要连接的外部设备的不同,因此就需要使用不同的串行通信接口。本文主要介绍了小型CPU中常用的三种通信协议,那就是SPI、I2C、UART。除了分别论述了各自的通信原理外,本文还特别介绍了一个小型CPU的内部构造,以及这三个通信协议在CPU中所处的位置。 @@ 在硬件的设计开发中,由于集成电路本身的特殊性,其开发流程也相对的复杂。本文由于篇幅的问题,只对总的开发流程作了简要的介绍,并且将其中最复杂但是又很重要的静态时序分析进行了详细的论述。在通信协议的开发中,需要注意接口的设计、时序的分析、验证环境的搭建等,因此,本文以SPI数据通信协议的设计作为一个开发范例,从协议功能的研究到最后的验证测试,将FPGA 的开发流程与关键技术等以实例的方式进行了详细的论述。在SPI通信协议的开发中,不仅对协议进行了详细的功能分析,而且对架构中的每个模块的设计都进行了详细的论述。@@关键词:FPGA;SPI;I2C;UART;静态时序分析;验证环境
上传时间: 2013-04-24
上传用户:vvbvvb123
国家863项目“飞行控制计算机系统FC通信卡研制”的任务是研究设计符合CPCI总线标准的FC通信卡。本课题是这个项目的进一步引伸,用于设计SCI串行通信接口,以实现环上多计算机系统间的高速串行通信。 本文以此项目为背景,对基于FPGA的SCI串行通信接口进行研究与实现。论文先概述SCI协议,接着对SCI串行通信接口的两个模块:SCI节点模型模块和CPCI总线接口模块的功能和实现进行了详细的论述。 SCI节模型包含Aurora收发模块、中断进程、旁路FIFO、接受和发送存储器、地址解码、MUX。在SCI节点模型的实现上,利用FPGA内嵌的RocketIO高速串行收发器实现主机之间的高速串行通信,并利用Aurora IP核实现了Aurora链路层协议;设计一个同步FIFO实现旁路FIFO;利用FPGA上的块RAM实现发送和接收存储器;中断进程、地址解码和多路复合分别在控制逻辑中实现。 CPCI总线接口包括PCI核、PCI核的配置模块以及用户逻辑三个部分。本课题中,采用FPGA+PCI软核的方法来实现CPCI总线接口。PCI核作为PCI总线与用户逻辑之间的桥梁:PCI核的配置模块负责对PCI核进行配置,得到用户需要的PCI核;用户逻辑模块负责实现整个通信接口具体的内部逻辑功能;并引入中断机制来提高SCI通信接口与主机之间数据交换的速率。 设计选用硬件描述语言VerilogHDL和VHDL,在开发工具Xilinx ISE7.1中完成整个系统的设计、综合、布局布线,利用Modelsim进行功能及时序仿真,使用DriverWorks为SCI串行通信接口编写WinXP下的驱动程序,用VC++6.0编写相应的测试应用程序。最后,将FPGA设计下载到FC通信卡中运行,并利用ISE内嵌的ChipScope Pro虚拟逻辑分析仪对设计进行验证,运行结果正常。 文章最后分析传输性能上的原因,指出工作中的不足之处和需要进一步完善的地方。
上传时间: 2013-04-24
上传用户:竺羽翎2222
海洋台站自动观测系统是一套应用于海滨观测的仪器设备,负责对气象、水文参数进行实时观测。诸多的参数通过相应的传感器进行测量,海洋台站自动观测系统对测量的信息进行汇总,再将其通过有线或无线的通讯方式传输到各级海洋环境监测预报中心,供天气预报和海洋预报使用。 本文以我国“海洋台站自动观测系统政府采购计划”为背景,重点设计了低成本、低功耗、高性能、高可靠性的新型海洋台站自动观测系统。本课题主要研究基于arm7+uClinux海洋台站自动观测系统的设计与开发。根据实际的需要,分析海洋台站自动观测系统的整体要求,对传感器进行选型,进行方案设计,完成整个系统的搭建。为了降低系统功耗,CPU所采用的是Samsung公司推出的无内存管理单元的处理器S3C44BO,设计了8MFLASH、64MSDRAM、液晶、USB以及键盘等相关电路。同时,为了减少驱动开发所带来的不便,使用TL16C554A对串口电路进行了扩展,便于数据处理,也使得系统具有更好的可扩展性。软件方面设计主要涉及了BootLoader引导装载程序的建立,选用uClinux操作系统,并对其内核进行配置和裁剪,添加源代码中没有的驱动程序。为了缩短研发周期和降低开发难度,选用MiniGUI作为图形用户界面系统,深入分析了MiniGUI的结构、原理,并将其移植到uClinux系统中。本系统采用的是MiniGUI-Threads多线程模式,主线程协调各个线程进行相应的数据处理。为了使系统操作变得直观、简单,对用户界面进行了初步设计,使用复用I/O的方法解决多串口通讯容易造成的数据阻塞问题。此外,为了更好的将台站所测得的信息量发送给海洋环境监测预报中心,需要完善通讯协议以便于数据交换。 最后,根据本系统实际研究开发结果,总结分析了系统的特点,并对下一步设计工作进行了展望。
上传时间: 2013-07-12
上传用户:juyuantwo
随着电子技术的不断发展,嵌入式系统越来越多地在控制类、消费类、通讯类等电子产品广泛应用,嵌入式技术也越来越和人们的生活紧密结合。同时,计算机硬件的发展以及数据量的增加,对存储设备的要求也越来越高。 本文深入研究了嵌入式系统中数据存储和数据交换,提出了一套完整的嵌入式系统中数据存储和数据交换的设计方案,并详细介绍了其实现过程。Flash存储器由于体积小、功耗低、性能稳定等特点在便携式电子产品中得到了广泛的应用。Flash存储器主要有两种形式:Nor Flash和Nand Flash。Nor Flash具有XIP特性,可以直接在芯片上执行代码,而且读取速度较快。Nand Flash存储密度大、容量大、生产工艺简单、性价比高,但是控制方式复杂而且可能会存在一定的坏块。SD卡是近年来流行的大容量便携式存储卡。本系统中,我们以Flash和SD卡作为数据存储介质。在存储介质的选择方面,在系统内部采用了体积小、容量大、成本低的Flash,并采用Nor和Nand Flash相结合的方案:在Nor Flash上存储与系统相关的软件和程序,在Nand Flash上存储用户数据。系统外部采用安全性高、容量大、性能佳的SD卡作存储容量扩展。实现了基于Atmel公司ARM系列MCU的Flash存储器和SD卡的硬件电路的设计及底层驱动程序的设计。 本研究分别根据Nor和Nand Flash数据存储和操作特点,分析了JFFS2和YAFFS的特点以及各自的存储方式、断电保护、损耗平衡、垃圾回收等一系列的策略和机制,并在Nor和Nand Flash上实现并优化了这些管理机制。在SD上则采用目前主流操作系统(Windows,Linux等)所支持的FAT16文件格式,完成了从磁盘格式化到文件的读写等标准API函数,实现了嵌入式系统的高速数据交换。
上传时间: 2013-04-24
上传用户:qulele
CAN总线作为最有前途的现场总线之一,其应用范围已逐渐扩展到航空领域,并有望作为次级总线与目前的航空总线互连组网。ARINC429总线则是航空领域比较常用的航空总线之一,很多航空电子设备都采用此总线。解决好CAN总线与ARINC429总线的互连问题,必将能够使CAN总线在航空领域得到更广泛的应用。本文的工作就是为解决这一总线互连问题而开发出总线网关系统,即CAN-ARINC429网关。 随着嵌入式技术的飞速发展,嵌入式系统的成本低、体积小、稳定性好等众多优点使其应用领域越来越广。本课题将嵌入式技术应用到CAN-ARINC429网关系统开发中,采用比较有影响力的嵌入式处理器ARM作为网关系统的核心,开发了网关系统的硬件部分和软件部分。 本文着重讨论了CAN-ARINC429网关系统设计的三大部分:硬件设计、控制软件设计和用户软件设计。硬件设计部分完成了CAN和ARINC429的总线数据收发电路设计,以及ARM处理器分别与CAN总线控制器和ARINC429总线协议芯片的接口电路设计。控制软件部分是在Linux平台下开发的,因此本文控制软件部分首先研究并实现了Linux平台下ARM编译系统的建立,其后的程序启动代码和总线数据交换设计是控制软件的关键部分,CAN总线和ARINC429总线的数据收发程序设计在本文的控制软件部分中也都有详细讨论。本文还开发了基于Windows平台的用户软件,该用户软件是为提高CAN-ARINC429网关的通用性而设计,具有网关工作方式设置和功能测试等功能。在给出对CAN-ARINC429网关的测试报告后,本文对课题的研究工作进行了总结和展望。
上传时间: 2013-04-24
上传用户:cccole0605
本文设计的井下网络分站作为“煤矿安全自动检测、监控及管理系统”的一个重要的组成部分,以ARM微控制器为核心,以操作系统μC/OS-Ⅱ为操作平台,采用TCP/IP协议栈实现了分站的网络通信功能,很好的解决了当前煤矿企业安全监控系统通信协议不一致的问题。 在硬件方面,严格按照《煤矿安全监控系统通用技术要求》完成了监控分站的总体硬件设计,并通过驱动网卡芯片RTL8019AS实现了以太网连接。选用PHILIPS的32位ARM芯片LPC2214作为分站的控制芯片,它带有16KB的静态RAM和256KB的高速FLASH,包含8路10位A/D,还有多个串行接口,可使用的GPIO高达76个(使用了外部存储器),很好了满足了分站外接传感器的多样化要求。在人机对话方面,系统扩展了128×64的液晶和1×4的键盘。在通信方面,采用TCP/IP协议与地面主机进行通信,将各种参数传送到地面主机进行复杂的运算处理。 在软件方面,介绍了嵌入式操作系统μC/OS-Ⅱ的移植过程,并在此基础上分析了TCP/IP协议栈的实现;制定了统一的数据交换格式;通信过程中采用了标准的TCP/IP协议;详细介绍了几个主要程序模块的编程思路,如LCD显示、外部输入频率信号的计数及数据存储,并给出了在实际编程过程中遇到的问题及解决方法。 本监控分站根据《本质安全型“i”》标准将外部接入设备和分站作了电气隔离,该分站具有2路A/D数据采集;6路光电隔离数字量输入;2路光电隔离数字量输出对外部设备进行远程管理和控制;人机接口提供人机交互界面,提供按键操作和数据显示;RS485通信接口负责与外界设备进行通信;网络通信接口负责为各种监测监控系统提供兼容的接入接口;非易失性铁电存储器作为数据存储区以保证掉电后存储数据不丢失。
上传时间: 2013-04-24
上传用户:13160677563