嵌入式网络控制器总结

时间:2019-05-12 08:44:42下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《嵌入式网络控制器总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《嵌入式网络控制器总结》。

第一篇:嵌入式网络控制器总结

嵌入式以太网控制芯片

一、网络控制芯片的参数

1.外围特性

 与核心控制芯片(MCU/DSP)的连接方式  LED的配置  接收发送缓冲区  接收发送中断 2.电气特性

网络控制芯片的电气特性主要关注以下指标:

 输入电压  I/O端口电压  工作温度范围  封装形式 3.通信性能

 与核心控制芯片的通信速率  网络传输介质

 单工半双工全双工工作模式  MAC层的特性

二、各种序列的以太网控制芯片

1.亚信公司的AX序列 1)AX88783芯片  外围特性

 配置的8/16/32位SRAM-like主机接口,它很容易与最常用的嵌入式微控制器连接(AX88782: 16位,AX88783:8/16/32位) 电气特性

 片内所需供电电压为3.3V  片内所需输入时钟为25MHz  128引脚(AX88782为80引脚)LQFP兼容RoHS封装  正常工作温度范围为:0°C 到+70°C  网络通信能力

 兼容IEEE 802.3标准10BASE-T/100BASE-TX的快速以太网  10/100M自适应接口支持双绞线交叉检测和自动校正

 支持完全符合IEEE 802.3x标准的全双工操作流量控制和半双工的背压  支持队列和端口的可编程速率控制(4K~100M bps)2)AX88780芯片  外围特性

 16/32位SRAM-like主机接口  支持大/小端类型的数据总线  支持EEPROM接口  支持16位PCMCIA模式  电气特性

 集成了2.5V~3.3V的电压调节器

 核心电压2.5V,I/O口电压3.3V可承受5V电压  128引脚CMOS工艺LQFP兼容RoHS封装  网络通信能力

 兼容802.3/802.3u标准

 集成快速以太网MAC PHY收发器  10Mbps和100Mbps的数据传输速率

 支持全双工/半双工工作模式。对于全双工工作模式,支持IEEE 802.3x标准的流量控制。对于半双工,支持背压流量控制。

图一

AX88780框图 3)AX88796芯片  外围特性

 同时支持8位和16位本地CPU接口包括MCS51系列和80186系列的CPU以及ISA 总线。 支持SRAM-like主机接口

 支持DMA从模式的,以尽量减少CPU开销  带可编程延时计时器的中断引脚  支持EEPROM接口存储MAC地址  电气特性

 集成稳压器和25MHz晶体振荡器

 0.18CMOS工艺,3.3V供电电压,I/O端口可承受5V电压  64引脚LQFP,RoHS封装

 正常工作温度范围为:0°C 到+70°C  网络通信能力

 兼容802.3/802.3u标准

 集成快速以太网MAC PHY收发器  10Mbps和100Mbps的数据传输速率  支持10/100Mbps N-way自动协商功能操作  支持双绞线交叉检测和自动校正(HP Auto-MDIX) 兼容NE2000寄存器指令

 支持全双工/半双工工作模式。对于全双工工作模式,支持IEEE 802.3x标准的流量控制。对于半双工,支持背压流量控制。

图二

AX88796框图 4)AX88196芯片  外围特性

 同时支持8位和16位本地CPU接口包括MCS51系列、80186系列和MC68K系列的CPU。

 提供一个10/100Mbps MII操作的端口  支持标准打印口,也可以用作通用I / O端口  电气特性

 5V和3.3V双电压,CMOS工艺,I / O端口可承受5V电压。或者纯3.3V 操作电压

 128引脚LQFP低态封装  网络通信能力

 兼容IEEE 802.3u标准,支持100BASE-T, TX, and T4  支持单芯片本地10/100Mbps自适应CPU总线  兼容NE2000寄存器指令

 10Mbps和100Mbps的数据传输速率  支持全双工/半双工工作模式  外部和内部的环回功能

图三

AX88196框图 2.Microchip公司的ENC序列 1)ENC28J60芯片  外围特性  最高速度可达 10Mb/s的 SPI接口

 两个用来表示连接、发送、接收、冲突和全/半双工状态的可编程LED 输出  使用两个中断引脚的七个中断源  带可编程预分频器的时钟输出引脚  电气特性

 接收器和冲突抑制电路

 TTL电平输入,工作电压范围是3.14V 到3.45V  温度范围:-40°C 到+85°C(工业级),0°C 到+70°C(商业级)SSOP封装)

 28 引脚SPDIP、SSOP、SOIC和QFN 封装  网络通信能力

 IEEE 802.3 兼容的以太网控制器  集成 MAC和 10 BASE-T PHY  支持一个带自动极性检测和校正的 10BASE-T端口  支持全双工和半双工模式  可编程在发生冲突时自动重发 2)ENC624/424J600芯片  外围特性

 带有增强操作码集的14 Mbit/s SPI接口(44引脚和64引脚封装) 8 位复用并行接口(44 引脚和 64 引脚封装) 8 位/16 位复用或解复用并行接口(仅 64 引脚封装) 两个用于支持单 /双LED 配置的 LED指示输出  发送和接收中断  电气特性

 可承受 5V输入电压

 可编程频率范围为 50kHz至 33.3MHz的时钟输出引脚  工作电压范围为 3.0V至 3.6V  温度范围:

-40°C至+85°C(工业级)

 提供 44引脚TQFP和 QFN封装以及 64 引脚TQF封装

(仅 网络通信能力

 符合IEEE 802.3™的快速以太网控制器

 支持一个带自动极性检测和校正的10/100Base-T端口

 集成MAC和10/100Base-T PHY  24 KB的发送 /接收数据包缓冲 SRAM  支持自动协商

 支持暂停控制帧,包括自动发送和接收流控制  支持半双工和全双工工作模式  可编程为在发生冲突时自动重发  工厂预编程的唯一MAC 地址 3.台湾联杰公司的DM序列 1)DM9000芯片  外围特性

 支持一般处理器接口

 支持8位,16位和32 位uP接口以便访问不同的处理器。 电气特性

 工作电压为3.3V,可承受5V电压  100引脚LQFP封装  网络通信能力

 附带1个10/100M PHY和4K的 双字节的SRAM  提供了MII接口用以连接HPNA设备或其他支持MII接口的收发

 控制器的PHY支持10Base – T和100BASE – TX,完全符合IEEE 802.3u标准。

 支持IEEE 802.3x全双工流量控制 4.Cirrus Logic公司的CS8900A芯片

 外围特性

 符合IEEE802.3以太网标准,并带有ISA接口。 片内4K字节RAM。

 适用于I/O操作模式,存储器操作模式和DMA操作模式  支持外部EEPROM  电气特性

 最大消耗电流55mA(5V供电) 3/5V工作电压  工业级可承受温度范围  LQFP-100  网络通信能力

 适用于I/O操作模式,存储器操作模式和DMA操作模式。 全双工工作模式

 带有传送、接收低通滤波的10Base-T连接站口。 支持10Base2,10Base5和10Base-F的AUI自动重发。

CS8900A基本工作原理是:在收到由主机发来的数据报(从目的地址域到数据域)后,侦听网络线路。如果线路忙,它就等到线路空闲为止,否则,立即发送该数据帧。发送过程中,首先,它添加以太网帧头(包括先导字段和帧开始标志),然后,生成CRC校验码,最后,将此数据帧发送到以太网上。接收时,它将从以太网收到的数据帧在经过解码、去掉帧头和地址检验等步骤后缓存在片内。在CRC校验通过后,它会根据初始化配置情况,通知主机 CS8900A收到了数据帧,最后,用上面介绍的某种传输模式传到主机的存储区中。

5.Smart Mixed-Signal Connectivity(SMSC)公司的LAN序列 1)LAN91C96芯片  外围特性

 16位数据、控制传输,数据管道传输

 支持总线、PCMCA和摩托罗拉68000总线访问方式  集成AUI接口  电气特性

工作电压3.3V,可承受5V电压  100引脚QFP/TQFP兼容RoHS封装  网络通信能力

 支持增强型发送队列管理  支持IEEE802.3以太网标准

 10Mb/s曼切斯特编码/解码和时钟恢复  支持TXRX极性自动检测 2)LAN91C110芯片  外围特性  16位数据宽度

 通用的系统级接口,可以很方便的适用ISA,PCMCIA以及各种CPU系统接口

 支持8/16位CPU存取  支持异步总线接口  电气特性

 144引脚TQFP无铅RoHS封装  网络通信能力

 兼容IEEE802.3 10BASE-T、100BASE-TX以及100BASE-T4标准  支持IEEE802.3全双工工作模式  MII管理串行接口

3)LAN9118芯片(89218、9218、9117、9117、9115) 外围特性

 16/32位数据总线  支持DMA从模式  中断引脚延时可编程控制

 SRAM-like接口可以很容易的接入大多数嵌入式CUP和SoC  电气特性

 100引脚无铅RoHS封装  集成1.8V稳压器

 3.3V供电,I/O端口可承受5V电压  工作温度范围:0°C 到+70°C  网络通信能力

 完全兼容IEEE802.3/802.3u标准,支持10BASE-T、100BASE-TX  支持全双工/半双工工作模式。对于全双工工作模式,支持流量控制。对于半双工,支持背压流量控制。 自动极性检测和校正  灵活的地址过滤模式 6.Silabs公司CP2200芯片

 外围特性

 Inter或Motorola总线方式

 8位复用或非复用方式,复用下仅需11个I/O引脚  接收数据包中断和网络唤醒中断  电气特性

 电源电压3.1V~3.6V  I/O可承受5V电压

 无铅28脚QFN封装(5×5mm),无铅48脚TQFP封装(9×9mm) 温度范围:

-40°C至+85°C(工业级) 网络通信能力

 集成的IEEE802.3MAC和10BASE-T PHY  完全兼容100/1000 BASE-T网络

 全/半双工工作模式,自适应,自动极性检测和校正  支持广播和多播MAC寻址  工厂预编程的唯一48位MAC地址

第二篇:基于电话网的嵌入式远程控制器的设计

基于电话网的嵌入式远程控制器的设计

时间:2009-04-01 10:48:23 来源:微计算机信息 作者:李朋飞 鲁凯生 罗刚 冯常奇 引言

随着工业自动化水平的提高,远程控制成了应用越来越多的控制手段,常用的远程控制方式有基于以太网、GPRS、GSM短消息、电话网等。电话网络是覆盖面最广的网络,且电话通信的费用低廉,这就为利用电话网进行远程控制提供了可能。本控制器采用性价比较高的单片机AT89C51作为中控CPU控制MT8870对电话按键的双音多频信号进行解码,来实现通过对电话按键的操作来控制远端的被控对象,通过可录放语音芯片ISD1110来播放提示语音。设计实现了操作简单、安装方便,低成本的嵌入式远程控制器。该控制器能够检测电话振铃信号,自动模拟摘机,操作者根据语音提示就可以很方便的查询被控对象的运行状态,操作电话按键就可以改变被控对象的运行状态。2 系统功能和结构

本系统主要解决的问题是如何利用电话线传递控制信息。电话线上所传输的是双音多频信号(DTMF信号),这里直接利用电话线传递的DTMF信号来传递控制信息实现对远端控制对象的控制操作。系统主要完成的功能是对DTMF信号的解码,通过单片机对解码结果进行译码,根据译码结果发出相应的控制信号,驱动控制电路进行指定的控制操作。系统还必须能够识别电话振铃信号,在指定的时间内检测到规定的振铃次数(5次)则接通电话,播放提示语音。通过对电话按键的操作来远程控制被控对象。本系统主要设置了振铃检测、模拟摘机、模拟挂机、DTMF解码、语音、继电器驱动等电路。系统结构框图如图1:

系统工作过程:

振铃检测电路用于检测振铃信号,当检测到有振铃信号时,对振铃进行记数如果振铃次数小于5次该控制器不动作,若振铃次数大于5次表示要进行控制,单片机输出信号给模拟摘/挂机电路模拟摘机,此时控制器就和控制中心的电话接通。该控制器为防止误操作设置了密码保护功能,当控制中心通过拨打电话与控制器接通后,单片机输出信号给语音电路播放密码提示语音,控制者可以通过电话按键输入密码,控制系统接收由电话线传送来的DTMF信号,由MT8870对电话按键的DTMF信号进行解码,如果密码正确操作者就可以根据语音提示完成状态查询或是控制动作。3.硬件电路组成

系统硬件主要由振铃检测电路、模拟摘挂机电路、DTMF信号解码电路、语音电路和输出驱动电路等几部分组成。3.1振铃检测、模拟摘机电路

振铃检测、模拟摘机电路如图2,振铃检测电路是由光耦TLP521-1和74LS123构成。当有电话呼入时,电话线上传输的25HZ、90V的交流振铃信号由C1、C2隔离直流后由整流桥整流,整流后的直流电压值较高,经光电隔离器U1后输出TTL脉冲信号,该脉冲经74LS123整形成大方波信号,该方波信号送至单片机的P3.5引脚进行计数,当计数值达到预设值时,单片机P1.0引脚输出高电平,三极管Q1导通则继电器K1动作,将负载电阻R5(330Ω)接入电路实现模拟摘机。这里所说的模拟摘机是指将R5接入电路后,电话线上就会出现大于10mA的电流,交换中心检测到这一电流后就不再输出振铃信号而是转为接通电话。人们手动摘机接通电话时的工作过程与此一致,因此称为模拟摘机。如果振铃信号没有达到预设值就消失,则单片机的计数值清零,控制器不动作。

3.2 DTMF信号解码电路 频率(HZ)1209 1336 1477 1633 697 1 2 3 A 770 4 5 6 B 652 7 8 9 C 941 * 0 # D DTMF(Dural Tone Multiple Frequency)

表1 电话按键DTMF频率对应表

主要用于电话交换系统,它是由两个不同频率的音频信号叠加而成的复合信号,这些音频信号不存在任何谐波关系,分为高音组和低音组,电话机每个按键对应一组DTMF信号,对应关系如表1所示。

本系统采用MT8870作为DTMF信号的解码芯片,MT8870的结构如图3:

MT8870是加拿大Mitel公司生产的一种集成度高,应用普遍的通信类集成电路芯片,MT8870可以方便的和单片机接口,其主要功能是完成双音多频(DTMF)信号的接收和识别,它可用于有线

电话网,无线移动通信网和计算机通信网的终端设备。DTMF信号通过IN-端输入MT8870,GS引脚接反馈电阻对输入的DTMF信号进行放大,OSC1和OSC2引脚之间接一个3.5795MHZ的晶振,产生DTMF信号双音对中各单音比较信号。信号在MT8870内经过滤波、放大、高低频分离,再经过数字处理转化为与DTMF信号相对应的二 进制编码。DTMF信号解码为4位二进制码,由Q1~Q4直接输出,如按下电话“1”号键,则电话线上就有高频1209 HZ和低频697 HZ的DTMF信号 表 2 MT8870解码表传播,此信号进入MT8870进行解码,解码的结果由Q1、Q2,Q3、Q4,输出,MT8870输出结果与电话按键的对应关系如表2所示。芯片STD引脚提供DTMF信号检测输出,当MT8870接收到DTMF信号并解码完成后该引脚为高电平,平时该引脚为低电平,该信号通过反相后可向单片机申请中断,TOE引脚为输出使能端,当TOE为高电平时解码结果可以从Q1~Q4输出。TOE为低电平时Q1~Q4引脚为高阻态。MT8870与单片机的接口电路如图4。

3.3 语音电路

在语音控制与语音录放电路中采用ISD1110芯片制作数字录音器件,该语音芯片是美国ISD公司的ISD系列单片语音录放集成电路的一种。它采用直接模拟量存储技术,将每个采样值直接存储在片内的快速闪存中,能较好的保留模拟量中的有效成分,音质较好,该器件采用CMOS工艺制造,片内含时钟、话筒运放、自动增益控制、噪声滤波、平滑滤波和扬声器放大器。最小的语音录放系统仅由一个话筒、喇叭和几个电阻电容、按键组成。目前在语音录放设计中应用十分广泛。

ISD1110引脚排列如图5所示。各引脚功能如下: A0~A7 地址输入/模式控制; VSSA、VSSD 模拟地和数字地; SP+、SP-扬声器输出的正负端; VCCA、VCCD 模拟和数字电源正端; MIC 话筒输入端;

MIC REF话筒输入参考端; AGC 自动增益控制;

ANA IN、ANA OUT 模拟输入输出; /REC 录音低电平有效; /PLAYL 电平触发放音; /PLAYE边沿触发放音; XCLK 外部时钟; /RECLED 录音指示。4软件设计

系统程序采用C51编写,用高级语言开发单片机系统,具有开发周期短,软件可移植性强等优点。系统程序设计主要分两部分,一部分是系统对振铃信号进行计数,当计数值达到预设值时输出控制信号模拟接通电话;另一部分就是对电话按键的解码,实现相应的操作。系统程序流程图如图6

5结语

嵌入式电话遥控作为一种较新的课题与常规的遥控方式相比,显示出很大的优越性,它不需要专门的布线,不占用无线电频率资源,同时可以利用现有的成熟的电话网络实现跨省市的远程控制。

本文所介绍的基于电话网的嵌入式远程控制器,工作可靠,制造成本低,应用对象不受限制,具有广泛的实用性和推广价值。

第三篇:嵌入式总结

一、嵌入式系统原理与应用课程总结

这个学期我学习了《嵌入式原理与应用》这门课程,虽然这个学期马上就要结束了,对嵌入式的学习也要告一段落了,但是我觉得收获还是很大的。学期开始,我开始学习《嵌入式系统及应用》,由于初次接触嵌入式系统,感觉蛮难的,所以收获不是很大,很多的概念都比较模糊,真是茫然无从下手。虽然一个学期的学习时间不是很长,但是我觉得对嵌入式系统也已经有了一个大致的概念。对它的历史发展与今后展望都有了一定的了解。嵌入式技术的掌握是需要一个过程的,对嵌入式技术的全面掌握是有相当难度的。如果要真正掌握的话还是需要一步步积累才能熟练掌握的,所以我们还要自己多加学习,不断地回顾以前学到的知识,也要吸收新的概念与技术,使自己的学习目标更加明确,学习方法更加完善,也体会到软件开发的乐趣,更加清楚的认识到自己在软件开发学习上的一些不足之处,并且不断改进以提高自己。

通过这门课程的学习,我了解到了嵌入式系统是一种为特定设备服务,软硬件可裁剪的计算机系统,其英文名称是Embedded System。嵌入式系统的范围很广,特点是形式变化多样、体积小,可以灵活地适应各种设备的需求。嵌入式系统的一些例子:手机、汽车、ATM、数字电视、医疗仪器等等。嵌入式系统本身是一个相对模糊的定义,一个手持的MP3和一个PC104的微型工业控制计算机都可以认为是嵌入式系统。总体来说,嵌入式系统是“用于控制,监视或者辅助操作机器和设备的装备”。一个典型的桌面Linux系统包括3个主要的软件层---linux内核、C库和应用程序代码。内核是唯一可以完全控制硬件的层,内核驱动程序代表应用程序与硬件之间进行会话。内核之上是C库,负责把POSIX API转换为内核可以识别的形式,然后调用内核,从应用程序向内核传递参数。应用程序依靠驱动内核来完成特定的任务。嵌入式系统的发展是从电子计算机诞生以来,计算机的发展有两个方向:一个方向是体积大型化、处理能力超强的大型计算机;另一个是向体积小型化,功能多样化的方向发展。嵌入式微控制器,即传统意义上的单片机,是目前嵌入式系统的前身。一般都是8位或者16位。嵌入式微处理器,单片机的发展时间较早,处理能力很低,只能应用在一些相对简单的控制领域。嵌入式微处理器是近几年随着大规模集成电路发展同步发展起来的。与单片机相比,嵌入式微处理器的处理能力更强,主流的嵌入式微处理器都是32位的。嵌入式微处理器在一个芯片上集成了复杂的功能,有的还把常见的外部设备控制器也集成到芯片内部。未来嵌入式系统的发展方向,随着微电子技术的发展和电子制造工艺的进步,嵌入式系统硬件的体积会不断缩小,系统稳定性也在不断增强,可以把更多功能集成到一个芯片上;同时功耗方面也不断降低。随着网络的普及和IPv6技术的应用,IPv6技术主要解决了IPv4的IP地址数目紧缺的现状,越来越多的嵌入式设备也会加入到网络中。典型的嵌入式系统的组成,嵌入式系统包括硬件和软件。硬件包括了嵌入式微处理器和嵌入式微控制器以及一些外围元器件和外部设备;软件包括了嵌入式操作系统和应用软件。嵌入式系统硬件种类繁多,有许多硬件和软件的解决方案,不同嵌入式系统软硬件很难兼容,软件必须修改而硬件必须重新设计才能使用。不仅如此,我们还要对软件硬件都有所了解才可以逐渐有所领悟。软件和硬件都是学习嵌入式系统必不可少的方面。其实我现在仍旧觉得在嵌入式系统这个博大精深的领域,我还有太多太多不懂的地方,需要学习的还有很读。嵌入式软件开发应用广泛而且前景很好,目前正处于人才紧缺的关口,嵌入式技术在未来能够得到更加广泛的应用。学好嵌入式,C语言很重要,所以感觉自己有必要在学习、积累一下这方面的知识。很多东西的学习不死一帆风顺也是比较耗时的,嵌入式也不例外,要想学好还必须下大力气,还必须坚持。这次的课程让我明确了一点:嵌入式开发对于提升我们的系统知识有很大的帮助,尤其是操作系统的知识。嵌入式系统开发对于我们的知识面要求非常的广,且要有一定的深度。,平时上完理论课很少有时间上机进行时间或者隔几天才上机练习,等到上机时一些东西可能遗忘了,比较耗费时间。在课上,有老师在前面演示我们感觉看得懂或感觉没问题,可轮到我们独立完成的时候,因为实际操作的少,跟着问题就来了。有些即使老师讲了很多遍的问题,我们不会,老师还是会走进我们给我们耐心的指导,还给我们讲一些学习的方法,一些软件开发需要注意的细节,让我们知道自己在哪方面不足,需要加强,也让我们了解到哪些需要认真的学习,那些是重点,不是没有方向的乱学一通,结果什么也学不好。经过这次的课程,我真真确确地感受到了嵌入式在我们生活中工作中的运用,这些软件、程序能让我们提高工作的效率,更直观更便捷的切入主题。当然,在学习的过程中并不是一帆风顺的,在这之中,因为要操作的东西很多,有时错一步,后面的结果就无法显示,而自己的水平根本检查不出来是哪里出了错。这时候,老师都会耐心的过来帮助我们一起去解决。在平时我们就需要好好的查阅书籍或者上网搜集相关资料去解决问题。

在了解了基础知识的情况下,我们还同步地进行了上机操作,当然,其中遇到很多的难题,很多东西都是第一次接触,又没有很多的指导操作,主要还是要凭借自己去摸索练习。其中的困难可想而知。然而坚持就是胜利,只要坚持做下去。通过这学期的实验课程,我感觉收获还是蛮多的。可能我对于嵌入式的知识学习的还是不太多,但是这之外的东西收获颇丰。它让我学会了如何通过自己的努力去认知一个新事物,更重要的是端正自己的学习态度,只有真正下功夫去学习,才能有收获,正所谓“一份耕耘,一份收获”。没有付出,何谈回报呢?再者,通过这学期的实验课程,我也学会了如何去分析问题,如何找出自己设计中的不足,继而去排除解决问题,这就是一个自我学习的过程。当我们通过实验去学习理论知识时,自己动手得出的结论,不仅能加深我们对嵌入式的理解,更能加深我们对此的记忆。

其实,我觉得最大的收获不仅仅是我学习到了多少知识,还有学习给我的感悟。首先是心态。一定要有一个积极的心态,独立解决问题的意识,培养扎实基础的认识。不要什么东西都感觉跟简单,很多东西可能是看似简单,就不去做了或者不屑一做,以至于性网上搜搜就可以了,这样很不好。有自己的东西有自己的付出才会有程序运行成功时的喜悦和小自豪,这样也有助于培养自己的兴趣。要时刻牢记态度决定一切。其次是兴趣,感觉学习工作中兴趣很关键,只是一个引发人积极性的问题,有了兴趣就自觉了,效率自然就高了。再次要敢于尝试和挑战。不要安于现成的程序,而且不要害怕失败,在程序调试的过程中这点尤为重要,“发现出问题然后解决问题”是一个积累经验的过程,而且很高效。最后要不懈追求。对于源代码进行不断的完善,要尽可能的实现课题所要求的功能。对于初学者或者开发较少的人来说,大量大写程序还是有必要的,但同时要注意思考,理解其实现的内在意义。还可以自己添加一些有意义的功能来实现。当看到自己编写的程序正常运行时,兴趣也会随之而来,乐此不疲,形成一个良性循环。我相信在以后的学习工作中,我也会端正自己的学习态度,一丝不苟的去对待每一件事。只有做好足够的准备,才能事半功倍!

第四篇:可编程序控制器总结

《可编程序控制器PLC》总结

时间过的真快,转眼间,一学期的课程结束了。这学期主要学习了《可编程序控制器应用技术及项目训练》,以三菱FX2s为样机,通过4个由易到难的实际工程项目,让我学会合理运用PLC及相关工控产品,掌握小型控制系统设计、安装与调试的工作方法。

通过本课程的学习,使我更加熟悉了相关国家标准和行业规范;熟练进行PLC控制柜装配;掌握小型PLC控制系统设计、安装、调试的工作方法;掌握收集、查阅PLC及相关产品资料的渠道和方法;熟悉位置、温度等工业传感器的选型与用法,会规范绘制电路图、接线图、位置图等电气图纸;会规范编写设备设计说明书和设备使用说明书等文档,也让我了解了有关PLC的很多知识。其中包括一下这些方面:

PLC的基础知识 PLC的定义

PLC是可编程序控制器的简称。可编程序控制器(ProgrammableController)本应简称PC,但是由于个人计算机(PersonalComputer)也简称为PC,为了区别,同时由于早期的可编程序控制器只是具有逻辑控制功能,因此人们仍习惯称可编程序控制器为PLC(ProgrammableLogicalController)。PLC的发展概况

20世纪60年代中期,美国通用汽车公司(GM)为适应生产工艺不断更新的需要,提出了一种设想:把计算机的功能完善、通用灵活等优点与继电器控制系统的简单易懂、操作方便、价格便宜等优点结合起来,并提出了新型电气控制的十点招标要求。其中包括:编程方便,可在现场修改程序;维护方便,最好采用插件式结构;可靠性高于继电器控制装置;数据可直接进入管理计算机;体积小于继电器控制装置;成本可与继电器控制装置竞争;输入电源可为交流115V;输出为交流115V,负载电流应在2A以上,能直接驱动电磁阀接触器等;扩展时,原系统要求变更最少;用户程序存储器大于4KB等。

PLC的基本构成

电源:PLC的电源用于为PLC各模块的集成电路提供工作电源,在整个系统中起着十分重要的作用。电源输入类型有:交流电源(220VAC或110VAC),直流电源(常用的为24VDC)。

中央处理单元(CPU):中央处理单元(CPU)是PLC的控制中枢,是PLC的核心起神经中枢的作用,每套PLC至少有一个CPU。它按照PLC系统程序赋予的功能接收并存储从编程器键入的用户程序和数据;检查电源、存储器、I/O以及警戒定时器的状态,并能诊断用户程序中的语法错误。当PLC投入运行时,首先它以扫描的方式接收现场各输入装置的状态和数据,并分别存入I/O映象区,然后从用户程序存储器中逐条读取用户程序,经过命令解释后按指令的规定执行逻辑或算数运算的结果送入I/O映象区或数据寄存器内。等所有的用户程序执行完毕之后,最后将I/O映象区的各输出状态或输出寄存器内的数据传送到相应的输出装置,如此循环运行,直到停止运行。

存储器:存放系统软件的存储器称为系统程序存储器。存放应用软件的存储器称为用户程序存储器。

输入输出接口电路(I/O模块):PLC与电气回路的接口,是通过输入输出部分(I/O)完成的。I/O模块集成了PLC的I/O电路,其输入暂存器反映输入信号状态,输出点反映输出锁存器状态。输入模块将电信号变换成数字信号进入PLC系统,输出模块相反。I/O分为开关量输入(DI),开关量输出(DO),模拟量输入(AI),模拟量输出(AO)等模块。

PLC的特点:可靠性高,抗干扰能力强。

PLC作为通用工业控制计算机,是面向工矿企业的工控设备。它接口容易,编程语言易于为工程技术人员接受。梯形图语言的图形符号与表达方式和继电器电路图相当接近,只用PLC的少量开关量逻辑控制指令就可以方便地实现继电器电路的功能。

PLC的梯形图程序一般采用顺序控制设计法。这种编程方法很有规律,很容易掌握。对于复杂的控制系统,梯形图的设计时间比设计继电器系统电路图的时间要少得多。

PLC用存储逻辑代替接线逻辑,大大减少了控制设备外部的接线,使控制系统设计及建造的周期大为缩短,同时维护也变得容易起来。更重要的是使同一设备经过改变程序改变生产过程成为可能。这很适合多品种、小批量的生产场合。

可编程控制器编程语言

可编程控制器PLC中有多种程序设计语言,它们是:梯形图语言、布尔助记符语言、功能表图语言、功能模块图语言及结构化语句描述语言等。

梯形图语言和布尔助记符语言是基本程序设计语言,它通常由一系列指令组成,用这些指令可以完成大多数简单的控制功能,例如,代替继电器、计数器、计时器完成顺序控制和逻辑控制等,通过扩展或增强指令集,它们也能执行其它的基本操作。

功能表图语言和语句描述语言是高级的程序设计语言,它可根据需要去执行更有效的操作,例如,模拟量的控制,数据的操纵,报表的报印和其他基本程序设计语言无法完成的功能。

PLC的应用领域

开关量的逻辑控制

这是PLC最基本、最广泛的应用领域,它取代传统的继电器电路,实现逻辑控制、顺序控制,既可用于单台设备的控制,也可用于多机群控及自动化流水线。如注塑机、印刷机、订书机械、组合机床、磨床、包装生产线、电镀流水线等。

数据处理

现代PLC具有数学运算(含矩阵运算、函数运算、逻辑运算)、数据传送、数据转换、排序、查表、位操作等功能,可以完成数据的采集、分析及处理。这些数据可以与存储在存储器中的参考值比较,完成一定的控制操作,也可以利用通信功能传送到别的智能装置,或将它们打印制表。数据处理一般用于大型控制系统,如无人控制的柔性制造系统;也可用于过程控制系统,如造纸、冶金、食品工业中的一些大型控制系统。

通信及联网

PLC通信含PLC间的通信及PLC与其它智能设备间的通信。随着计算机控制的发展,工厂自动化网络发展得很快,各PLC厂商都十分重视PLC的通信功能,纷纷推出各自的网络系统。新近生产的PLC都具有通信接口,通信非常方便。

PLC具有通用性强、使用方便、适应面广、可靠性高、抗干扰能力强、编程简单等特点。PLC在工业自动化控制特别是顺序控制中的地位,在可预见的将来,是无法取代的。

PLC的类型

PLC按结构分为整体型和模块型两类,按应用环境分为现场安装和控制室安装两类;按CPU字长分为1位、4位、8位、16位、32位、64位等。从应用角度出发,通常可按控制功能或输入输出点数选型。整体型PLC的I/O点数固定,因此用户选择的余地较小,用于小型控制系统;模块型PLC提供多种I/O卡件或插卡,因此用户可较合理地选择和配置控制系统的I/O点数,功能扩展方便灵活,一般用于大中型控制系统。

了解PLC的这些知识之后,要想完成一个项目,最关键的是软件部分,也就是程序。创建程序,用梯形图编程语言创建一个与模板相连结或与模板无关的程序并存储。创建程序是我们控制工程的重要工作之一,一般可以采用线形编程(基于一个块内,OB1)、分布编程(编写功能块FB,OB1组织调用)、结构化编程(编写通用块)。

下载程序到可编程控制器,完成所有的组态、参数赋值和编程任务之后,可以下载整个用户程序到可编程控制器。在下载程序时可编程控制器必须在允许下载的工作模式下(STOP或RUN-P),RUN-P模式表示,这个程序将一次下载一个块,如果重写一个旧的CPU程序就可能出现冲突,所以一般在下载前将CPU切换到STOP模式。

为了我们能顺利的完成一个项目,PLC系统设计时,首先应确定控制方案,接下来就是PLC工程设计选型。工艺流程的特点和应用要求是设计选型的主要依据。PLC及有关设备应是集成的、标准的,按照易于与工业控制系统形成一个整体,易于扩充其功能的原则选型所选用PLC应是在相关工业领域有投运业绩、成熟可靠的系统,PLC的系统硬件、软件配置及功能应与装置规模和控制要求相适应等等。

通过这学期的学习,我熟悉可编程序控制器、功能表图及有关的编程语言,这让我在以后的实践中有了很多的帮助。最后,感谢王老师的教导,让我学会了PLC的相关知识。

第五篇:嵌入式串口和网络编程实验报告

嵌入式实验报告

题目:linux

串口和网络编程

一、实验目的:

1、强化本学期所学的相关的内容。

2、掌握串口相关设置。

3、强化基于TCP网络传输的三次握手。

4、自学Linux线程的使用。

二、实验内容:

本试验基于server和client的透明传输来实现类似于QQ的聊天功能。

三、实验过程:

1、linux开发环境的建立

2、嵌入式linux系统的搭建

1>BootLoader的移植

2>linux系统的裁剪与移植 Linux内核裁剪

./make_image生成自己的uImage2638

上电验证:

3>根文件系统的移植 修改hostname为:whmtt

./mkcramfsdisk_new 生成rootfs_new.cramfs

大小从老师给的40000到37b00(因为有的没有用到,大小变小了):

上电验证:

3、客服端编程client.c 相关代码: #include #include #include #include #include #include #include #include

#define SERVER_PORT 20000 //设置服务端口

#define CLIENT_PORT((20001+rand())%65536)//设置客户端端口(随机)#define BUFFER_SIZE 256 #define LENGTH_OF_LISTEN_QUEUE 10 //可窃听队列长为10 #define WELCOME_MESSAGE “welcome to connect the server.”

void usage(char* name){ printf(“usage: %s IpAddrn ” ,name);}

struct sockaddr_in servaddr,cliaddr;int servfd,clifd,length=0;struct sockaddr_in servaddr,cliaddr;socklen_t socklen=sizeof(servaddr);char buf[BUFFER_SIZE],buf2[BUFFER_SIZE];pthread_t tidp,tidp2;int pth;int runflag=0;

void *Thread1(void *arg)/*等待runflag为1,当为1时清空buf,同时接收来自server的数据并输出。

但当没有清空,则break.*/ { while(runflag){

memset(buf,0,BUFFER_SIZE);

length=recv(clifd,buf,BUFFER_SIZE,0);

if(strstr(buf,“$”)>0){runflag=0;printf(“stop!n”);break;}

if(length>0)printf(“from server:%s”,buf);

} }

void *Thread2(void *arg)/*等待发送数据给Server*/ { printf(“Please input your words to Server:--$ to stopn”);while(runflag){

memset(buf2,0,BUFFER_SIZE);

scanf(“%s”,buf2);

send(clifd,buf2,strlen(buf2),0);

if(strstr(buf2,“$”)>0){runflag=0;printf(“stop!n”);break;}

} }

int main(int argc, char** argv){ if(argc < 2){

usage(argv[0]);

exit(1);} if((clifd = socket(AF_INET,SOCK_STREAM,0))< 0)//用tcp定义socket {

printf(“ create socket error!n ”);

exit(1);}

srand(time(NULL));// initialize random generator

bzero(& cliaddr, sizeof(cliaddr));cliaddr.sin_family = AF_INET;cliaddr.sin_port = htons(CLIENT_PORT);cliaddr.sin_addr.s_addr = htons(INADDR_ANY);

if(bind(clifd,(struct sockaddr*)&cliaddr,sizeof(cliaddr))< 0){

printf(“bind to port %d failure!n ” ,CLIENT_PORT);

exit(1);}//绑定的目的是让其端口是随机的,否则端口是自增1 //一般情况下client端不用绑定

bzero(&servaddr, sizeof(servaddr));

servaddr.sin_family = AF_INET;inet_aton(argv[1], &servaddr.sin_addr);servaddr.sin_port = htons(SERVER_PORT);

if(connect(clifd,(struct sockaddr *)&servaddr, socklen)< 0){

printf(“can't connect to %s!n”, argv[1]);

exit(1);}

runflag=1;

pth=pthread_create(&tidp,NULL,Thread1,NULL);

if(pth!=0){printf(“error!”);return-1;}

pth=pthread_create(&tidp2,NULL,Thread2,NULL);

if(pth!=0){printf(“error!”);return-1;}

pthread_detach(tidp);

pthread_detach(tidp2);

while(runflag){;}

close(clifd);

return 0;}

4、服务端server.c编写

相关代码: #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include

#define COM0 0 #define BLOCK_MODE 1 #define NONBLK_MODE 0 #define SERVER_PORT 20000 #define LENGTH_OF_LISTEN_QUEUE 10 #define QUEUE 20 #define BUFFER_SIZE 256 #define WELCOME_MESSAGE “welcome to connect the server.”

static struct termios g_newtio,g_oldtio;

static int speed_arr[] = { B115200, B57600, B38400, B19200, B9600, B4800, B2400, B1200, B300, B115200, B57600, B38400, B19200, B9600, B4800, B2400, B1200, B300, };

static int name_arr[] = { 115200, 57600, 38400, 19200, 9600, 4800, 2400, 1200, 300, 115200, 57600, 38400, 19200, 9600, 4800, 2400, 1200, 300, };

int Init_COM(int Comm,int Baudrate,int Parity,int Stopbit,int Flagblock){ int ret,i;char dev_buf[16];

if(Comm > 3){

printf(“Com%d not existn”,Comm);

return-1;}

memset(dev_buf,0x00,sizeof(dev_buf));sprintf(dev_buf,“/dev/ttyS%d”,Comm);

if(Flagblock){

ret = open(dev_buf, O_RDWR | O_NOCTTY);//以默认阻塞方式打开

} else {

ret = open(dev_buf, O_RDWR | O_NOCTTY | O_NONBLOCK);//以非阻塞方式打开

}

if(ret < 0){

printf(“Open ttyS%d failedn”,Comm);

return-1;

}

if(tcgetattr(ret, &g_oldtio)< 0)//保存原先的端口

{

printf(“Get Com Parameter Error.n”);

return-1;}

for(i= 0;i < sizeof(speed_arr)/ sizeof(int);i++){

if(Baudrate == name_arr[i])

{

cfsetispeed(&g_newtio,speed_arr[i]);/*设置输入输出波特率*/

cfsetospeed(&g_newtio,speed_arr[i]);

break;

} }

if(i>=sizeof(speed_arr)/ sizeof(int)){

printf(“Unsupported Speed!n”);

return-1;}

switch(Parity){

case 'n':

case 'N':

g_newtio.c_cflag &= ~PARODD;

g_newtio.c_cflag &= ~PARENB;

break;

case 'o':

case 'O':

g_newtio.c_cflag |= PARENB;

g_newtio.c_cflag |= PARODD;//奇校验

break;

case 'e':

case 'E':

g_newtio.c_cflag |= PARENB;//偶校验

g_newtio.c_cflag &= ~PARODD;

break;

default:

printf(“Unsupported Parityn”);

return-1;}

switch(Stopbit)//设置停止校验位是为2,否为1.{

case 1:

g_newtio.c_cflag &= ~CSTOPB;

break;

case 2:

g_newtio.c_cflag |= CSTOPB;

break;

default:

printf(“Unsupported Stopbit!n”);

return-1;} g_newtio.c_iflag = 0;g_newtio.c_oflag = 0;g_newtio.c_lflag = 0;

g_newtio.c_cc[VTIME] = 1;//最大等待时间为1*100ms g_newtio.c_cc[VMIN] = 1;//最小读数为1

g_newtio.c_iflag &= ~INPCK;g_newtio.c_cflag &= ~CRTSCTS;g_newtio.c_cflag &= ~CSIZE;//设置数据位

g_newtio.c_cflag |= CS8;// g_newtio.c_cflag |= CLOCAL;g_newtio.c_cflag |= CREAD;

if(tcsetattr(ret, TCSANOW, &g_newtio)!= 0)//激活设置

{

printf(“Set Com Parameter Error!n”);

return-1;}

tcflush(ret, TCIOFLUSH);//刷新输入输出缓存

return ret;}

//以上为套接字的相关定义

//一下类似与client一样设置数据接收和发送。

void RestoreComConfiguration(int fd,struct termios *ptios){ if(tcsetattr(fd, TCSANOW, ptios)!= 0){

printf(“Restore Com Parameter Error!n”);} }

int fd;char buf[1024],buf2[1024];int servfd,clifd;

struct sockaddr_in servaddr,cliaddr;int runflag=0;

void *Thread1(void *arg){ printf(“Please input your words to Server:--$ to stopn”);while(runflag){

memset(buf,0,BUFFER_SIZE);

read(fd,buf,1024);

send(clifd,buf,strlen(buf),0);

if(strstr(buf,“$”)>0){runflag=0;printf(“stop!n”);break;}

} }

void *Thread2(void *arg){ int length=0;while(runflag){char stdstr[1024]=“from client:”;

memset(buf2,0,BUFFER_SIZE);

length=recv(clifd,buf2,1024,0);if(length>0){

strcat(stdstr,buf2);strcat(stdstr,“n”);

if(strstr(buf2,“$”)>0)

{runflag=0;printf(“stop!n”);break;}

write(fd,stdstr,strlen(stdstr));

}

}

} void socket_init(void){ if((servfd=socket(AF_INET,SOCK_STREAM,0))<0){printf(“create socket error!n”);exit(1);} bzero(&servaddr,sizeof(servaddr));servaddr.sin_family=AF_INET;servaddr.sin_port=htons(SERVER_PORT);servaddr.sin_addr.s_addr=htons(INADDR_ANY);if(bind(servfd,(struct sockaddr*)&servaddr,sizeof(servaddr))<0){printf(“bind to port %d failure!n”,SERVER_PORT);exit(1);} if(listen(servfd,QUEUE)<0){printf(“call listen failure!n”);exit(1);} socklen_t length=sizeof(cliaddr);clifd=accept(servfd,(struct sockaddr*)&cliaddr,&length);if(clifd<0){ printf(“error comes when call accept!n”);exit(1);} } int main(int argc,char *argv[]){ fd = Init_COM(COM0,115200,'N',1,BLOCK_MODE);socket_init();pthread_t tidp,tidp2;int pth;if(fd >= 0)RestoreComConfiguration(fd,&g_oldtio);

runflag=1;

pth=pthread_create(&tidp,NULL,Thread1,NULL);

if(pth!=0){printf(“error!”);return-1;}

pth=pthread_create(&tidp2,NULL,Thread2,NULL);

if(pth!=0){printf(“error!”);return-1;}

pthread_detach(tidp);

pthread_detach(tidp2);

while(runflag){;}

close(clifd);close(fd);close(servfd);//全部关闭

return 0;} 编译结果:

5、nfs挂载

四、实验结果:

五、心得体会:

下载嵌入式网络控制器总结word格式文档
下载嵌入式网络控制器总结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    嵌入式实验总结

    如今,嵌入式系统已经在众多电气电子产品上应用,有人预测今后5年发展形势看好。嵌入式是典型的交叉学科,电信、电子、电气、计算机、通信等等都有涉及。 嵌入式理论、实践要求多......

    嵌入式存储卡总结

    嵌入式作业 1、 NandFlash和NorFlash的区别 它们是两种并行FLASH Flash存储器又称闪存,是一种可以在线多次擦除的非易失性存储器,即掉电后数据不会丢失,具体积小、功耗低、抗......

    嵌入式 知识点总结

    1、嵌入式系统的特点: (1).嵌入式系统的个性化很强,软件系统和硬件在不同的应用中均有差异; (2).由通用计算机系统发展而来,根据应用对软硬件进行裁剪; (3).高的可靠性,强的实用性......

    嵌入式论文总结

    嵌入式论文总结 所谓嵌入式系统( Embedded Systems).实际上是“嵌入式计算机系统”的简称,它是相对于通用计算机系统而言的。在有些系统里也有计算机,但是计算机是作为某个专用......

    嵌入式学习总结

    嵌入式学习总结 一.基本信息................................................................................................................... 1 二.嵌入式系统的组......

    嵌入式复习总结

    一:嵌入式系统概述 1嵌入式定义 2嵌入式与通用计算机 A.嵌入式系统具有应用针对性 B.嵌入式系统硬件一般对扩展能力要求不高 C.嵌入式一般采用专门针对嵌入式应用设计的处理......

    嵌入式考试总结

    嵌入式系统定义:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 嵌入式系统应用:工业控制火......

    嵌入式Linux总结

    1.虚拟机64位,正确配置交叉编译工具和环境变量后arm-linux-gcc–v 出错 64位系统运行32位的unicore需要32位运行库 sudo apt-get install lsb-core(验证) sudo apt-get install......