当前位置:文档之家› 零死角玩转stm32-高级篇7、以太网(ENC28J60)

零死角玩转stm32-高级篇7、以太网(ENC28J60)

零死角玩转stm32-高级篇7、以太网(ENC28J60)
零死角玩转stm32-高级篇7、以太网(ENC28J60)

0、友情提示

《零死角玩转STM32》系列教程由初级篇、中级篇、高级篇、系统篇、四个部分组成,根据野火STM32开发板旧版教程升级而来,且经过重新深入编写,重新排版,更适合初学者,步步为营,从入门到精通,从裸奔到系统,让您零死角玩转STM32。M3的世界,与野火同行,乐意惬无边。

另外,野火团队历时一年精心打造的《STM32库开发实战指南》将于今年10月份由机械工业出版社出版,该书的排版更适于纸质书本阅读以及更有利于查阅资料。内容上会给你带来更多的惊喜。是一本学习STM32必备的工具书。敬请期待!

7、以太网(ENC28J60)

7.1 实验描述及工程文件清单

实验描述在浏览器上创建一个web服务器,通过web里面的命令来

控制开发板上的LED的亮灭。

应用->

1:在PC机的DOS界面输入: ping 192.168.1.15 ,看能否

ping通。

2:在IE浏览器中输入:http://192.168.1.15/123456 则会出

现一个网页,通过网页中的命令可以控制开发板中的LED的

亮灭。

硬件连接PE4 :ENC28J60-INT

PA6-SPI1-MISO :ENC28J60-SO

PA7-SPI1-MOSI :ENC28J60-SI

PA5-SPI1-SCK :ENC28J60-SCK

PA4-SPI1-NSS :ENC28J60-CS

PE1 :ENC28J60-RST

用到的库文件startup/start_stm32f10x_hd.c

CMSIS/core_cm3.c

CMSIS/system_stm32f10x.c

FWlib/stm32f10x_gpio.c

FWlib/stm32f10x_rcc.c

FWlib/stm32f10x_usart.c

FWlib/stm32f10x_spi.c

用户编写的文件USER/main.c

USER/stm32f10x_it.c

USER/led.c

USER/usart.c

USER/spi_enc28j60.c

USER/enc28j60.c

USER/ip_arp_udp_tcp.c

USER/web_server.c

野火STM32开发板中10M以太网ENC28J60的硬件原理图

7.2 ENC28J60简介

ENC28J60是带有行业标准串行外设接口(SerialPeripheral Interface,SPI)的独立以太网控制器。它可作为任何配备有 SPI 的控制器的以太网接口。ENC28J60 符合 IEEE 802.3 的全部规范,采用了一系列包过滤机制以对传入数据包进行限制。它还提供了一个内部 DMA 模块,以实现快速数据吞吐和硬件支持的IP校验和计算。与主控制器的通信通过两个中断引脚和SPI 实现,数据传输速率高达 10 Mb/s。两个专用的引脚用于连接 LED,进行网络活动状态指示。

下图所示为ENC28J60的简化框图。图 1-2所示为使用该器件的典型应用电路。要将单片机连接到速率为10 Mbps 的以太网,只需 ENC28J60、两个脉冲变压器和一些无源元件即可。本开发板中用的网络变压器的型号为911105A。

ENC28J60由七个主要功能模块组成:

1. SPI 接口——充当主控制器和ENC28J60 之间通信通道。

2. 控制寄存器——用于控制和监视 ENC28J60。

3. 双端口RAM缓冲器——用于接收和发送数据包。

4. 判优器——当DMA、发送和接收模块发出请求时对 RAM 缓冲器的访问进行控制。

5. 总线接口——对通过SPI 接收的数据和命令进行解析。

6. MAC (Medium Access Control)模块——实现符合 IEEE 802.3 标准的 MAC 逻辑。

7. PHY(物理层)模块——对双绞线上的模拟数据进行编码和译码。

该器件还包括其他支持模块,诸如振荡器、片内稳压器、电平变换器(提供可以接受 5V 电压的 I/O 引脚)和系统控制逻辑。

7.3 实验讲解

建议阅读程序的顺序为:spi_enc28j60.c -> enc28j60.c ->

ip_arp_udp_tcp.c ->web_server.c 。

spi_enc28j60.c :ENC28J60(以太网芯片) SPI接口应用函数库。

enc28j60.c : Microchip ENC28J60 Ethernet Interface Driver。

ip_arp_udp_tcp.c:IP, Arp, UDP and TCP functions(这部分野火仍在学习)。

web_server.c:web服务程序应用函数库。

其中enc28j60.c 、ip_arp_udp_tcp.c web_server.c是从国外的一个开源项目里面移植过来的,源文件基本上没有做修改。spi_enc28j60.c是由我们用户实现的底层函数接口,还有我们修改了web_server.c这个文件中网页命令控制部分的服务程序。

在配置好需要用的库文件之后,下面我们从main函数开始讲解,有关库函数是如何添加的情参考前面的教程,这里不再赘述。

1./*

2. * 函数名:main

3. * 描述:主函数

4. * 输入:无

5. * 输出:无

6. */

7.int main (void)

8.{

9./* 配置系统时钟为72M */

10. SystemInit();

11.

12./* 配置 LED */

13. LED_GPIO_Config();

14.

15./* ENC28J60 SPI 接口初始化 */

16. SPI_Enc28j60_Init();

17.

18./* ENC28J60 WEB 服务程序 */

19. Web_Server();

20.

21.//return 0;

22.}

在进入main函数代码段后,我们首先调用系统库函数SystemInit();将我们的系统时钟配置为72MHZ,如果用的是3.5.0版本的库则不需要,因为已在启动文件里面调用了。

LED_GPIO_Config();用于初始化LED,因为我们我们在我们的web服务器中要控制的就是LED,所以在这里要先把LED配置好,好让它接下来能工作。

SPI_Enc28j60_Init();用于配置以太网芯片ENC28J60所用到的数据通信口SPI2和其他控制I/O。这是我们用户在spi_enc28j60.c中实现的底层程序。

1./*

2. * 函数名:SPI1_Init

3. * 描述:ENC28J60 SPI 接口初始化

4. * 输入:无

5. * 输出:无

6. * 返回:无

7. */

8.void SPI_Enc28j60_Init(void)

9.{

10. GPIO_InitTypeDef GPIO_InitStructure;

11. SPI_InitTypeDef SPI_InitStructure;

12.

13./* 使能 SPI1 时钟 */

14. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1,

ENABLE);

15.

16./*

17. * PA5-SPI1-SCK :ENC28J60_SCK

18. * PA6-SPI1-MISO:ENC28J60_SO

19. * PA7-SPI1-MOSI:ENC28J60_SI

20. */

21. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7

;

22. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;

23. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // 复用输出

24. GPIO_Init(GPIOA, &GPIO_InitStructure);

25.

26./* PA4-SPI1-NSS:ENC28J60_CS */// 片选

27.

28. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;

29. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;

30. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推免输

31. GPIO_Init(GPIOA, &GPIO_InitStructure);

32. GPIO_SetBits(GPIOA, GPIO_Pin_4);

33.

34./* PB13:ENC28J60_INT */// 中断引脚没用到

35./* PE1:ENC28J60_RST*/// 复位似乎不用也可以

36.

37.

38./* SPI1 配置 */

39. SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;

40. SPI_InitStructure.SPI_Mode = SPI_Mode_Master;

41. SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;

42. SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;

43. SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;

44. SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;

45. SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8;

46. SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;

47. SPI_InitStructure.SPI_CRCPolynomial = 7;

48. SPI_Init(SPI1, &SPI_InitStructure);

49.

50./* 使能 SPI1 */

51. SPI_Cmd(SPI1, ENABLE);

52.}

在这个函数中不知大家有没注意到没有这两条注释:

1./* PB13:ENC28J60_INT */// 中断引脚没用到

2.

3./* PE1:ENC28J60_RST*/// 复位似乎不用也可以

enc28j60的中断引脚没用到很正常,但是复位引脚也没用到,这我就很纳闷了。我想原因可能是enc28j60有个上电自动复位的功能,这里它的复位引脚只能暂时没有用到而已,也或许是我们的开发板中引脚PE1(接enc28j60的复位脚)收到什么信号的干扰,产生了类似复位的信号。这里我们先把这问题搁一边先,毕竟程序还是工作了。至于具体的原因我以后有时间再深究下。

Web_Server();函数实现的功能是创建一个网页服务器,在这个网页服务器上我可以点击我们设定好的命令按钮来控制我们开发板上LED的亮灭。其实,从这里面我们就可以看到有点智能家居的味道了,所谓智能家居就是通过网络来控制我们家电的状态,如开和断。举个例子:我们可以在遥远的地方可以通过网络来控制家里的电视、电冰箱等,是不是很神奇哩?只要你学会了这个实验,再经过自己的再深入学习,这些都是小菜一碟。^_^,本实验旨在引导大家入门。

Web_Server();在web_server.c中实现。在web_server.c的开头包含了头文件:

1.#include "enc28j60.h"

2.#include "ip_arp_udp_tcp.h"

3.#include "net.h"

enc28j60.h : Microchip ENC28J60 Ethernet Interface Driver Header file

ip_arp_udp_tcp.h :IP, Arp, UDP and TCP functions Header file . For more Infermation Please See https://www.doczj.com/doc/4d9547794.html,/licenses/gpl.html

net.h : Based on the net.h file from the AVRlib library by Pascal Stang.

For AVRlib See https://www.doczj.com/doc/4d9547794.html,/

Used with explicit permission of Pascal Stang.

有关这三个头文件对应的C文件的功能,请大家阅读源码。

接下来我们具体看看Web_Server();这个函数具体做了什么,由于这个函数的源码较多,在这里我就不贴出来了。

enc28j60Init(mymac); 这个函数用来初始化 enc28j60 的MAC地址(物理地址),这个函数必须要调用一次。mymac在web_server.c的开头定义:

static unsigned char mymac[6] = {0x54,0x55,0x58,0x10,0x00,0x24}; 这里要注意的是:mac地址在局域网内必须唯一,否则将与其他主机冲突,导致连接不成功。mymac数组里面的数值可随便初始化,但万万不可与局域网内的mac 地址冲突,否则当另外一部主机在上网时,你是上不了网的。

enc28j60PhyWrite(PHLCON,0x476);这个函数用于设定网络变压器中LED 的颜色,不同的颜色指示不同的状态。网络变压器在没有工作的情况下,这两个LED是不会被点亮的,当网络变压器工作正常时,绿色LED表示link状态,黄色LED表示通信状态。本实验中,我们的程序工作正常时,绿色LED常亮,黄色LED是一闪一闪的。

init_ip_arp_udp_tcp(mymac,myip,mywwwport);这个函数用于初始化以太网的IP层。这里面涉及到三个参数:mymac、myip、mywwwport。其中mymac在前面已经讲解过。ip 指的是我们开发板的ip地址,要想通过网页来访问我们的服务器(即开发板),则必须要有ip。ip地址跟mac地址一样,在局域网能要保持唯一,不能够与其他主机的ip地址产生冲突。还要注意的一点就是:开发板的ip与我们电脑的ip必须保持在同一个网段,即ip地址的前三段要保持一致,后面一段不同。在本地链接中可查看到我们电脑的ip地址。我的电脑的ip地址是:192.168.1.106,如下截图所示:

所以,在此设置我们开发板的ip为static unsigned char myip[4] = {192,168,1,15}; ip的最后一段的值 15 可改为其他值,但要注意不要产生冲突。

接下来的是一个无限循环while ( 1 ),在这里面我们创建了一个网页,在网页中注入了我们自己的信息,并随时监控我们命令状态的改变,好实时地控制我们的LED,有关这些功能的实现请大家自行阅读源码,这里不再详述。我们仅来看看LED控制的部分:

1.if (cmd==1) // 用户程序

2.{

3. LED1(ON);

4. i=1; // 命令 = 1

5.}

6.if (cmd==0) // 用户程序

7.{

8. LED1(OFF);

9. i=0; // 命令 = 0

10.}

当我们在网页上点击点亮LED这个按钮时,网页发送命令1给开发板,这是开发板中的LED被点亮,反之,LED则被关闭。

这里我们仅提供简单的web服务程序,如果要实现更加复杂的功能,仍需大家的努力。当然,野火也会跟大家一起奋斗,开发出更多的应用程序跟大家分享。

这里面的操作涉及到很多enc28j60的知识,特别是寄存器的操作,具体的请大家参考enc28j60的datasheet,大家一定要看看,而且是要认认真真、仔仔细细地看,直到弄懂为止。

7.4实验现象

将野火STM32开发板供电(DC5V),插上JLINK,插上网口线,网口线一端连接路由器,一端连开发板。注意:电脑跟开发板的网线连接的路由器要同在一个局域网中。将编译好的程序下载到开发板。

1:打开电脑的DOS界面,输入:ping 192.168.1.15 ,看看能否ping 通。打印出如下信息则表示ping通,其中192.168.1.15是我们开发板的ip。

2:打开IE浏览器,在地址栏输入:http://192.168.1.15/123456,其中123456是我们自己设置的密码。然后按 Enter 键进入,如果成功则会出现一个如下网页,通过网页中的命令按钮点亮LED /关闭LED就可以控制我们开发板中LED的亮灭,这里控制的是开发板中的LED1。

LED1 灭

LED1 亮

工业以太网的意义和应用分析

以太网技术在工业控制领域的应用及意义 随着计算机和网络技术的飞速发展,在企业网络不同层次间传送的数据信息己变得越来越复杂,工业网络在开放性、互连性、带宽等方面提出了更高的要求。现场总线技术适应了工业网络的发展趋势,用数字通信代替传统的模拟信号传输,大量地减少了仪表之间的连接电缆、接线端口等,降低了系统的硬件成本,被誉为自动化领域的计算机局域网。 现场总线的出现,对于实现面向设备的自动化系统起到了巨大的推动作用,但现场总线这类专用实时通信网络具有成本高、速度低和支持应用有限等缺陷,以及总线通信协议的多样性使得不同总线产品不能直接互连、互用和互可操作等,无法达到全开放的要求,因此现场总线在工业网络中的进一步发展受到了限制。 随着Internet技术的不断发展,以太网己成为事实上的工业标准,TCP/IP 的简单实用已为广大用户所接受,基于TCP/IP协议的以太网可以满足工业网络各个层次的需求。目前不仅在办公自动化领域,而且在各个企业的上层网络也都广泛使用以太网技术。由于它技术成熟,连接电缆和接口设备价格较低,带宽也在飞速增加,特别是快速Ethernet与交换式Ethernet的出现,使人们转向希望以物美价廉的以太网设备取代工业网络中相对昂贵的专用总线设备。 Ethernet通信机制 Ethernet是IEEE802. 3所支持的局域网标准,最早由Xerox开发,后经数字仪器公司、Intel公司和Xerox联合扩展,成为Ethernet标准。Ethernet采用星形或总线形结构,传输速率为10Mb/s,100 Mb/s,1000 Mb/s或是更高,传输介质可采用双绞线、光纤、同轴电缆等,网络机制从早期的共享式发展到目前盛行的交换式,工作方式从单工发展到全双工。 在OSI/ISO 7层协议中,Ethernet本身只定义了物理层和数据链路层,作为一个完整的通信系统,它需要高层协议的支持。自从APARNET将TCP/IP和Ethernet捆绑在一起之后,Ethernet便采用TCP/IP作为其高层协议,TCP用来保证传输的可靠性,IP则用来确定信息传递路线。 Ethernet的介质访问控制层协议采用CSMA/CD,其工作原理如下:某节点要

推荐-stm32中定时器产生不同PWM的基本思路 精品

在stm32中利用定时器TIM调制PWM的几种方法: 说说我的学习经历:从开始接触到现在有好几个月了,但是学习还是比较的费劲,而且速度也比较的缓慢,当然相比之前还是有很大的进步,记得刚刚学习的时候,建工程都是大四学长手把手教的。废话不多说先来讲讲定时器的配置: STM32F10系列最少3个、做多有8个定时器,都是16位定时器,且相互之间是独立的,计数范围为0x0000-0xffff,最大计数值为65535.可以用于测量输入信号的脉冲长度或者产生输出波形(输出比较和PWM)分为通用定时器,高级定时器,以及看门狗定时器 下面主要讲通用定时器的配置问题: 以定时器TIM1为例:先进行函数的配置 void timer1_config() { TIM_TimeBaseInitTypDef TIM_TimeBaseStructure; //开定时器1外设时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM1,ENABLE); //计时50000次时间为50000/10M=500ms TIM_TimeBaseStructure.TIM_Period=50000 ; TIM_TimeBaseStructure.TIM_Prescaler = 720-1;//720分频 TIM_TimeBaseStructure.TIM_ClockDivision =0;//时钟分割为0; //计数模式向上计数 TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure)//初始化TIM1 TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE);//开启定时器中断 TIM_Cmd(TIM1,ENABLE); //使能定时器 } 关于时间的计算问题: 外设系统时钟的频率为72M,进行720分频以后,频率f=72M/720=100khz. 如果要定时0.1s 则计数值为10000,计算公式为:时间(t)=计数值(n)/频率(f).注意计数值n介于0到65535之间 有定时器则一定会有中断发生,所以要配置中断优先级,对于中断优先 级函数配置如下: V oid nvic_config() { NVIC_InitTypDef NVIC_InitStructure; //抢占优先级为1位,从优先级为3位 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1) ; NVIC_InitStructure.NVIC_IRQChannel=TIM1_IRQn; //定义定时器1为请求通道 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0; //抢占式优先级为0 NVIC_InitStructure.NVIC_IRQChannelSubPriority=2; //从优先级为2 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //使能中断优先级 NVIC_Init(&NVIC_InitStructure); //初始化中断 } 对于优先级中的抢占式和从优先级做如下解释: 抢占式优先级:是可以抢占的中断,比如正在执行的优先级为10的中断,突然来了一个优

正确认识纯化水系统的“死角

正确认识系统的“死角” 死角检查是系统进行安装确认(IQ)时的一项重要内容。在制药流体工艺系统(如制药用水系统、制药工艺配液系统、CIP/SIP系统)中,任何死角的存在均可能导致整个系统的污染。 死角过大所带来的风险主要如下: ?为微生物繁殖提供了“温床”并导致“生物膜”的形成,引起微生物指标、TOC指标或内毒素指标超标,导致水质指标不符合药典要求; ?系统消毒或灭菌不彻底导致的二次微生物污染; ?系统清洗不彻底导致的二次颗粒物污染或产品交叉污染。 因此,中国2010版GMP要求“管道的设计和安装应避免死角、盲管”。 《美国机械工程师协会生物加工设备标准》2014版对于死角有准确的定义,《ASMEBPE》(2014)规定:“死角”是指当管路或容器使用时,能导致产品污染

的区域(deadleg: an area of entrapment in a vessel or piping run that could lead tocontamination of the product.)。 1976年,美国FDA在CFR212法规上第一次采用量化方法进行死角的质量管理,工程上俗称“6D”规则,其含义为“当L/d<6时,证明此处无死角”,其中L指“流动侧主管网中心到支路盲板(或用点阀门中心)的距离”,d为支路的直径。随后的研究表明,“3D”规则更符合洁净流体工艺系统的微生物控制要求,其中L的含义变更为“流动侧主管网管壁到支路盲板(或用点阀门中心)的距离”(图1)。 图1 死角的发展 更加准确的死角量化定义来自于《ASMEBPE》规范(图2),该定义明确规定:L是指“流动侧主管网内壁到支路盲板(或用点阀门中心)的距离”,D是指“非流动侧支路管道的内径”。

以太网的技术

以太网的技术 1以太网的发展 以太网是当今现有局域网采用的最通用的通信协议标准,组建于七十年代早期。Ethernet(以太网)是一种传输速率为10Mbps的常用局域网(LAN)标准。在以太网中,所有计算机被连接一条同轴电缆上,采用具有冲突检测的载波感应多处访问(CSMA/CD)方法,采用竞争机制和总线拓朴结构。基本上,以太网由共享传输媒体,如双绞线电缆或同轴电缆和多端口集线器、网桥或交换机构成。在星型或总线型配置结构中,集线器/交换机/网桥通过电缆使得计算机、打印机和工作站彼此之间相互连接。由于其简单、成本低、可扩展性强、与IP网能够很好地结合等特点,以太网技术的应用正从企业内部网络向公用电信网领域迈进。以太网接入是指将以太网技术与综合布线相结合,作为公用电信网的接入网,直接向用户提供基于IP的多种业务的传送通道。以太网技术的实质是一种二层的媒质访问控制技术,可以在五类线上传送,也可以与其它接入媒质相结合,形成多种宽带接入技术。以太网与电话铜缆上的VDSL相结合,形成EoVDSL技术;与无源光网络相结合,产生EPON 技术;在无线环境中,发展为WLAN技术。 以太网技术作为数据链路层的一种简单、高效的技术,以其为核心,与其它物理层技术相结合,形成以太网技术接入体系。EoVDSL方式结合了以太网技术和VDSL技术的特点,与ADSL和(五类线上的)以太网技术相比,具有一定的潜在优势。WLAN技术的应用不断推广,EPON技术的研究开发正取得积极进展。随着上述“可运营、可管理”相关关键技术问题的逐步解决,以太网技术接入体系将在宽带接入领域得到更加广泛的应用。 同时,以太网技术的应用正在向城域网领域扩展。IEEE802.17RPR技术在保持以太网原有优点的基础上,引入或增强了自愈保护、优先级和公平算法、OAM等功能,是以太网技术的重要创新。对以太网传送的支持,成为新一代SDH设备(MSTP)的主要特征。10G以太网技术的迅速发展,推动了以太网技术在城域网范围内的广泛应用,WAN接口(10Gbase-W)的引入为其向骨干网领域扩展提供了可能。 随着网络的发展,传统标准的以太网技术已难以满足日益增长的网络数据流量速度需求。在1993年10月以前,对于要求10Mbps以上数据流量的LAN应用,只有光纤分布式数据接口(FDDI)可供选择,但它是一种价格非常昂贵的、基于100Mbps光缆的LAN。1993年10月,Grand Junction公司推出了世界上第一台快速以太网集线器Fastch10/100和网络接口卡FastNIC100,快速以太网技术正式得以应用。随后Intel、SynOptics、3COM、BayNetworks等公司亦相继推出自己的快速以太网装置。与此同时,IEEE802工程组亦对100Mbps以太网的各种标准,如100BASE-TX、100BASE-T4、MⅡ、中继器、全双工等标准进行了研究。1995年3月IEEE宣布了IEEE802.3u 100BASE-T快速以太网标准(Fast Ethernet),就这样开始了快速以太网的时代。 快速以太网与原来在100Mbps带宽下工作的FDDI相比它具有许多的优点,最主要体现在快速以太网技术可以有效的保障用户在布线基础实施上的投资,它支持3、4、5类双

工业以太网的特色技术及其应用选择

工业以太网的特色技术及其应用选择 发布时间:2007-05-15 浏览次数:105 | 我要说几句 | ?? 用户解决方案2012优秀论文合订本 ?? NIDays2012产品演示资料套件 ?? 《提高测量精度的七大技巧》资源包 ?? LabVIEW 2012评估版软件 关键词:工业以太网实时特色技术 编者按:工业以太网成为自动化领域业界的技术热点已有时日,其技术本身尚在发展之中,还没有走向成熟,还存在许多有待解决的问题。究竟什么是工业以太网,它有哪些特色技术,如何应用与选择适合自己需求的工业以太网技术与产品,依然是今天人们所关心的问题。 一什么是工业以太网 工业以太网技术,是以太网或者说是互联网系列技术延伸到工业应用环境的产物。前者源于后者又不同于后者。以太网技术原本不是为工业应用环境准备的。经过对工业应用环境适应性的改造,通信实时性改进,并添加了一些控制应用功能后,形成了工业以太网的技术主体。因此,工业以太网是一系列技术的综称。 二工业以太网涉及企业网络的各个层次

企业网络系统按其功能划分,一般称为以下三个层次:企业资源规划层(Enterprise Resource Plan NI ng, ERP)、制造执行层(Manufacturing Excurtion System, MES)和现场控制层(Field Control System,FCS)。通过各层之间的网络连接与信息交换,构成完整的企业信息系统。( 见图1) 图中的ERP与MES功能层属于采用以太网技术构成信息网络。这个层次的工业以太网,其核心技术依然是信息网络中原本的以太网以及互联网系列技术。工业以太网在该层次的特色技术是对其实行的工业环境适应性改造。而现场控制层FCS中,基于普通以太网技术的控制网络、实时以太网则属于该层次中工业以太网的特色技术范畴。可以把工业以太网在该层的特色技术看作是一种现场总线技术。除了工业环境适应性改造的内容之外,通信实时性、时间发布与同步、控制应用的功能与规范,则成为工业以太网在该层次的技术核心。

STM32高级定时器日记之PWM

STM32高级定时器PWM实用程序 文章来源:本站原创作者:佚名 该文章讲述了STM32高级定时器PWM实用程序. 高级定时器与通用定时器比较类似,下面是一个TIM1 的PWM 程序,TIM1是STM32唯一的高级定时器。共有4个通道有死区有互补。 先是配置IO脚: GPIO_InitTypeDef GPIO_InitStructure; /* PA8设置为功能脚(PWM) */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); /*PB13 设置为PWM的反极性输出*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOB, &GPIO_InitStructure); /*开时钟PWM的与GPIO的*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); /*配置TIM1*/ TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; void Tim1_Configuration(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; TIM_DeInit(TIM1); //重设为缺省值 /*TIM1时钟配置*/ TIM_TimeBaseStructure.TIM_Prescaler = 4000; //预分频(时钟分 频)72M/4000=18K TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数TIM_TimeBaseStructure.TIM_Period = 144; //装载值18k/144=125hz 就是说向上加的144便满了 TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置了时钟分割不

管道死角盲管规则

6D、3D、2D、管道死角/盲管规则,以及零死角阀门介绍 6D、3D、2D、管道死角/盲管规则以及零死角阀门介绍 关于管道死角/盲管的定义和要求,不同法规和指南有不同的要求,这些要求如下: 1、1976 CFR 212规范为6D,指主管道中心到支管阀门中心的距离应小于支管直径的6倍。 2、1993 美国高纯水检查指南为6D,指主管道中心到支管阀门密封点的长度应小于支管直径的6倍。 3、2001 ISPE水和蒸汽基准指南为3D,指主管外壁到支管阀门密封点的长度应小于支管直径的3倍。 4、2009 ASME BPE为2D,指主管内壁到阀门密封点的长度应小于支管直径的2倍。 5、WHO 建议为,应避免大于分支管径倍的盲管。 6、2010版中国GMP指南: 为了避免将来造成混乱,本指南建议死角长度从管的外壁来考虑。我们建议避免对于最大可允许的死角做硬性规定。 最后,在不考虑死角长度的情况下,水质必须满足要求。工程设计规范要求死角长度最小,有很多好的仪表和阀门的设计是尽量减少死角的。 我们应该认识到如果不经常冲洗或消毒,任何系统都能会存在死角。各种规定和提法甚至测量的方法不尽相同,但是目前的所有提法都不是“法规”而是工程的建议和标准。TheTruth about the 3D/6D Rule 3D/6D规则的真相 The installation of pipework leads to recurrent discussions about how deadlegs can be prevented and about the maximum length outgoing pipes/pipe tees mayhave for the sensor. There is less throughflow in dead legs. Hence, it isharder to clean them and during thermal sanitisation it takes longer until these"branches" have also reached the required temperature. In calls fortender and tests the 3D/6D rule is often used for the specification, but notalways in the completely correct way. In order to further explain this, pleaseread following the history of this rule. 管道的安装一再引起关于如何防止死管的讨论,以及探头安装位置连出的支管最大长度问题的讨论。在死管中水流较少,因此很难对其进行清洁,并且在高温消毒中会需要很长时间使得这些“支管”也能达到所需的温度。在设计和测试中,3D/6D规则通常用作标准,但并不总是用的完全正确。为了进一步解释这个问题,请阅读以下关于此规则的历史。The rule for the prevention of dead legs (in a WFI system) is mentionedfor the first time in the draft of the FDA Guides for Large VolumeParenterals (LVP), 21 CFR in 1972.

千兆以太网技术与应用

千兆以太网技术与应用 1. 简介 于1998年6月通过的IEEE 802.3z千兆比以太网标准描述了用于一个通用链路编码且可进行1000Mb/s 传输的3个物理层接口(1000BASE-SX、1000BASE-LX和1000BASE-CX)。1000BASE-SX、 1000BASE-LX接口采用光纤作为介质时,最远传输距离可达5000米,因而可应用于建筑物内或校园主干网络。 1000BASE-CX接口计划用于限制在25米内的计算机房内的连接。 IEEE 802.3ab千兆比以太网标准于1999年6月通过认证,它描述了用于不同线路编码的附加物理层接口(1000BASE-T)。 1000BASE-T接口通过5类非屏蔽双绞线(UTP)介质传输的最远距离可达100米,并主要应用于面向桌面的网络连接。 在1999年3月,一个IEEE 802.3研究小组正式成立,主要致力于发展通过光纤介质传输万兆比以太网的标准。 2. 铜缆布线系统 事实上,所有采用结构化综合布线系统的建筑物都有双绞线铜缆水平子系统,用于连接每一层的通讯配线间和墙上的信息出口。而这些布线系统的安装大部分都采用5类产品,所以1000BASE-T是设计应用于5类布线系统的。 1000BASE-T采用一根电缆中的所有4对线来传输,每对线的有效传输速率为250Mb/s,以此完成全双工传输。为了应用于5类带宽的布线系统,1000BASE-T 采用5级编码传输,而接收器采用数字信号处理(DSP)技术以减少来自布线系统中反射和近端串音干扰(NEXT)的影响。 应用于1000BASE-T的布线系统要求包括原5类系统未描述的附加的传输性能,如ELFEXT(等电平远端串扰)和回路损耗。这可由经强力推荐的最新专业测试仪测试、认可,多数已安装的5类布线系统能够支持1000BASE-T来证实。 ---https://www.doczj.com/doc/4d9547794.html,(学电脑) 1000BASE-T布线系统的规范将反馈到随ANSI/TIA/EIA的发展而形成的新的规程中。“4对100欧姆5类布线系统的附加传输性能参数”有望于今年年底由TSB-95颁布。 ANSI/TIA/EIA还发布了一篇说明“4对100欧姆增强型5类布线系统的传输性能参数”的草案,现在已是第12稿,预计作为ANSI/TIA/EIA568A标准的附录5在今年年底颁布。该草案同TSB-95的描述类似,但回路损耗和NEXT性能指标好2dB~3dB。 ANSI建议新的布线安装至少应满足增强型5类布线性能要求。

stm32高级定时器使用教程

STM32 高级定时器-PWM简单使用 2010-04-14 14:49:29| 分类:STM32 | 标签:|举报|字号大中小订阅高级定时器与通用定时器比较类似,下面是一个TIM1 的PWM 程序,TIM1是STM32唯一的高级定时器。共有4个通道有死区有互补。 先是配置IO脚: GPIO_InitTypeDef GPIO_InitStructure; /* PA8设置为功能脚(PWM) */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); /*PB13 设置为PWM的反极性输出*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); /*开时钟PWM的与GPIO的*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); /*配置TIM1*/ TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure;

管道死角盲管规则

6D、3D、2D、1.5D管道死角/盲管规则,以及零死角阀门介绍 6D、3D、2D、1.5D管道死角/盲管规则以及零死角阀门介绍 关于管道死角/盲管的定义和要求,不同法规和指南有不同的要求,这些要求如下: 1、1976 CFR 212规范为6D,指主管道中心到支管阀门中心的距离应小于支管直径的6倍。 2、1993 美国高纯水检查指南为6D,指主管道中心到支管阀门密封点的长度应小于支管直径的6倍。 3、2001 ISPE水和蒸汽基准指南为3D,指主管外壁到支管阀门密封点的长度应小于支管直径的3倍。 4、2009 ASME BPE为2D,指主管内壁到阀门密封点的长度应小于支管直径的2倍。 5、WHO 建议为1.5D,应避免大于分支管径1.5倍的盲管。 6、2010版中国GMP指南: 为了避免将来造成混乱,本指南建议死角长度从管的外壁来考虑。我们建议避免对于最大可允许的死角做硬性规定。 最后,在不考虑死角长度的情况下,水质必须满足要求。工程设计规范要求死角长度最小,有很多好的仪表和阀门的设计是尽量减少死角的。

我们应该认识到如果不经常冲洗或消毒,任何系统都能会存在死角。各种规定和提法甚至测量的方法不尽相同,但是目前的所有提法都不是“法规”而是工程的建议和标准。 TheTruth about the 3D/6D Rule 3D/6D规则的真相 The installation of pipework leads to recurrent discussions about how deadlegs can be prevented and about the maximum length outgoing pipes/pipe tees mayhave for the sensor. There is less throughflow in dead legs. Hence, it isharder to clean them and during thermal sanitisation it takes longer until these"branches" have also reached the required temperature. In

网络技术与应用的作业及答案

《网络技术与应用》第一次作业:(本次作业包括教学大纲的1-2 章) 一、填空题 1. 从逻辑上看,计算机网络是由通信子网和终端系统组成。 2. 通信协议的三要素是语法、语义和同步。 3. 按照网络作用范围,计算机网络分为局域网、城域网、广域网、区域个人 网和因特网。 4. 在OSI 参考模型中,传输的基本单位是帧的层次是数据链路层,该模型的 最高层是应用层。 二、单项选择题 1. 在OSI 参考模型中,自下而上第一个提供端到端服务的层次是( C )。 (A )数据链路层(B)网络层(C)传输层(D)应用层 2. 若网络形状是由站点和连接站点的链路组成的一个闭合环,则称这种拓扑结构为( C )。(A )星形拓扑(B )总线拓扑(C)环形拓扑(D)树形拓扑 3. 在OSI 参考模型中,物理层的主要功能是( B )。 (A )数据链路的访问控制和管理(B )透明地传输比特流 (C )在物理实体间传送数据帧(D )发送和接收用户数据报文 4. 下面关于计算机网络的体系结构和协议的叙述,不正确的是( B )。 (A )计算机网络体系结构是计算机网络及其部件所应完成的功能的精确定义 (B )TCP/IP 体系结构中的应用层对应于OSI 体系结构中的表示层和应用层

(C )网络协议是为进行网络中的数据交换而建立的规则、标准和约定 (D )网络协议是“水平”的概念 5. 下列选项中,不属于网络体系结构中所描述的内容是( A )。 (A )协议内部实现细节(B )网络层次(C)每一层使用协议(D )每层须完成的功能 三、综合题 1. 什么是网络协议?由哪几个基本要素组成? 答:协议是指通信双方必须遵循的、控制信息交换的规则的集合,是一套语义和语法规则, 用来规定有关功能部件在通信过程中的操作,它定义了数据发送和接收工作中必经的过程。 协议规定了网络中使用的格式、定时方式、顺序和检错。 一般说,一个网络协议主要由语法、语义和同步三个要素组成。语义:协议的语义是指对构成协议的协议元素含义的解释。语法:指数据与控制信息的结构或格式。同步:规定了事件 的执行顺序。

STM32的PWM精讲

STM32的PWM精讲 通过对TM1定时器进行控制,使之各通道输出插入死区的互补PWM输出,各通道输出频率均为17.57KHz。其中,通道1输出的占空比为50%,通道2输出的占空比为25%,通道3输出的占空比为12.5%。各通道互补输出为反相输出。 TM1定时器的通道1到4的输出分别对应PA.08、PA.09、PA.10和PA.11 引脚,而通道1到3的互补输出分别对应PB.13、PB.14和PB.15引脚,中止输入引脚为PB.12。将这些引脚分别接入示波器,在示波器上观查相应通道占空比的方波[12]。 配置好各通道后,编译运行工程;点击MDK的Debug菜单,点击Start/Stop Debug Session;通过示波器察看 PA.08、PA.09、PA.10、PB.13、PB.14、PB.15 的输出波形,其中PA.08和PB.13为第一通道和互补通道,PB.09和PB.14为第二通道和其互补通道,PB.10和PB.15为第三通道和其互补通道;第一通道显示占空比为50%,第二通道占空比为25%,第三通道占空比为12.5%。 第2章STM32处理器概述 STM32F103xx增强型系列产品中内置了多达3个同步的标准定时器。每个定时器都有一个16位的自动加载递加/递减计数器、一个16位的预分频器和4个独立的通道,每个通道都可用于输入捕获、输出比较、PWM和单脉冲模式输出,在最大的封装配置中可提供最多12个输入捕获、输出比较或PWM通道。它们还能通过定时器链接功能与高级控制定时器共同工作,提供同步或事件链接功能。 在调试模式下,计数器可以被冻结。任一个标准定时器都能用于产生PWM 输出。每个定时器都有独立的DMA请求机制。 2.4.2 高级控制定时器[22] 高级控制定时器(TM1)由一个16位的自动装载计数器组成,它由一个可编程预分频器驱动。它适合多种用途,包含测量输入信号的脉冲宽度(输入捕获),或者产生输出波形(输出比较,PWM,嵌入死区时间的互补PWM等)。 使用定时器预分频器和RCC时钟控制预分频器,可以实现脉冲宽度和波形周期从几个微秒至几个毫秒的调节。高级控制(TIM1)和通用(TMx)定时器是完全

万兆以太网技术发展及应用

万兆以太网技术发展及应用摘要:随着互联网技术的更新与发展,万兆以太网(10GBase-T)技术将在不久的将来成为网络应用的主流,本文综合阐述了10GBase-T技术、市场及应用。应用10GBase-T铜缆布线解决方案构建高性能网络核心成为行业发展趋势。 关键字:万兆以太网802.3ae10GE标准10GBase-T铜缆布线线性传输性能 一以太网技术的发展 以太网(Ethernet)技术由施乐公司(Xerox)于1973年提出并实现,它采用“载波监听多路访问/冲突检测CSMA/CD(Carrier Sense Multiple Access/Collision Detection)”的共享访问方案,将多个工作站都连接在一条总线上,所有的工作站都不断向总线发出监听信号。但在同一时刻,只能有一个工作站在总线上传输,其它工作站必须等待传输结束后,再开始自己的传输。由于以太网技术具有共享性、开放性、加上设计技术上的一些优势(如结构简单、算法简洁、良好的兼容性和平滑升级)以及关键的传输速率的大幅提升,它不但在局域网领域站稳了脚跟,而且在城域网甚至广域网范围内都得到了进一步的应用。 最早的以太网传输速率为10Mbps。采用CSMA/CD介质访问控制方式的局域网技术,由Xerox公司于1975年研制成功。而在1979年7月至1982年间,当时的DEC、Intel和Xerox三家公司共同制定了以太网的技术规范DIX。在这个技术规范的基础上,形成了IEEE802.3以太网标准,并在1989年正式成为一种以太网技术的国际标准。在20多年中,以太网

技术经历了不断发展,成为迄今最广泛应用的局域网技术。 千兆以太网技术作为一种高速以太网技术,给用户带来了提高核心网络的有效解决方案。它继承了传统以太网技术价格便宜的特点,采用与10M 以太网相同的帧格式、帧结构、网络协议、全/半双工工作方式、流控模式以及布线系统。由于这项技术可以不用改变传统以太网的桌面应用和操作系统,因此可与10M或100M的以太网很好地配合工作。在升级到千兆以太网时,不必改变网络应用程序、网管部件和网络操作系统,能够最大程度地保护用户投资,所以这项技术的市场前景十分被用户看好。 再发展就进入到以太网的万兆时代。万兆以太网使用IEEE 802.3以太网介质接入控制(MAC)协议、IEEE 802.3以太网帧格式和IEEE 802.3帧格式,不需要修改以太网介质接入控制(MAC)协议或分组格式。所以,能够支持所有网络的上层服务,包括在OSI七层模型的第二/三层或更高层次上运行的智能网络服务,具有高可用性、多协议标记交换(MPLS)、含IP语音(VoIP)在内的服务质量(QoS)、安全与策略实施、服务器负载均衡(SLB)和Web高速缓存等特点。 二10GBase-T万兆以太网技术 万兆以太网技术(10GBase-T)始于2002年6月802.3ae10GE标准的正式发布。在物理层,802.3ae大致分为两种类型,一种为与传统以太网连接速率为10Gbps的“LANPHY”,另一种为连接SDH/SONET速率为9.58464Gbps的“WANPHY”;WANPHY与SONETOC-192帧结构的融合,可以与OC-192电路和SONET/SDH设备一起运行,保护了传统基础设施投资,使运营商能够在不同地区中通过城域网提供端到端以太网。

STM32学习笔记通用定时器PWM输出

STM32学习笔记(5):通用定时器PWM输出 2011年3月30日TIMER输出PWM 1.TIMER输出PWM基本概念 脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。一般用来控制步进电机的速度等等。 STM32的定时器除了TIM6和TIM7之外,其他的定时器都可以用来产生PWM输出,其中高级定时器TIM1和TIM8可以同时产生7路的PWM输出,而通用定时器也能同时产生4路的PWM输出。 1.1PWM输出模式 STM32的PWM输出有两种模式,模式1和模式2,由TIMx_CCMRx寄存器中的OCxM位确定的(“110”为模式1,“111”为模式2)。模式1和模式2的区别如下: 110:PWM模式1-在向上计数时,一旦TIMx_CNTTIMx_CCR1时通道1为无效电平(OC1REF=0),否则为有效电平(OC1REF=1)。 111:PWM模式2-在向上计数时,一旦TIMx_CNTTIMx_CCR1时通道1为有效电平,否则为无效电平。 由此看来,模式1和模式2正好互补,互为相反,所以在运用起来差别也并不太大。 而从计数模式上来看,PWM也和TIMx在作定时器时一样,也有向上计数模式、向下计数模式和中心对齐模式,关于3种模式的具体资料,可以查看《STM32参考手册》的“14.3.9 PWM模式”一节,在此就不详细赘述了。 1.2PWM输出管脚 PWM的输出管脚是确定好的,具体的引脚功能可以查看《STM32参考手册》的“8.3.7 定时器复用功能重映射”一节。在此需要强调的是,不同的TIMx有分配不同的引脚,但是考虑到管脚复用功能,STM32提出了一个重映像的概念,就是说通过设置某一些相关的寄存器,来使得在其他非原始指定的管脚上也能输出PWM。但是这些重映像的管脚也是由参考手册给出的。比如

STM32 高级定时器-PWM简单使用

STM32 高级定时器-PWM简 单使用 高级定时器与通用定时器比较类似,下面是一个TIM1 的PWM 程序,TIM1是STM32唯一的高级定时器。共有4个通道有死区有互补。 先是配置IO脚: GPIO_InitTypeDef GPIO_InitStructure; /* PA8设置为功能脚(PWM) */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); /*PB13 设置为PWM的反极性输出*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); /*开时钟PWM的与GPIO的*/ RCC_APB2PeriphClockCmd(RCC_A PB2Periph_TIM1,ENABLE); RCC_APB2PeriphClockCmd(RCC_A PB2Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_A PB2Periph_GPIOB, ENABLE); /*配置TIM1*/ TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; void Tim1_Configuration(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; TIM_DeInit(TIM1); //重设为缺省值 /*TIM1时钟配置*/ TIM_TimeBaseStructure.TIM_Prescaler = 4000; //预分频(时钟分频)72M/4000=18K TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数 TIM_TimeBaseStructure.TIM_Period = 144; //装载值18k/144=125hz 就是说向上加的144便满了 TIM_TimeBaseStructure.TIM_ClockDivision =

工业以太网通信标准PROFInet及其应用

工业以太网通信标准PROFInet及其应用 发布日期:2011-09-27 浏览次数:2110 分享到:0 【摘要】:随着信息技术技术的飞速发展,当今自动化技术的发展正日益受到信息技术原理及其标准的重大影响。在自动化领域中集成信息技术可以为企业内部自动化系统间的全局通信提供解决方案,基于工业以太网通信标准的PROFInet通信技术使这种集成 成为可能。PROFInet是Process Field Net的缩写,它是Profibus客户、生产商与系统集成联盟协会推出的在PROFIBUS与以太网间全开放的通信协议。 1 引言 随着信息技术技术的飞速发展,当今自动化技术的发展正日益受到信息技术原理及其 标准的重大影响。在自动化领域中集成信息技术可以为企业内部自动化系统间的全局通信提供解决方案,基于工业以太网通信标准的PROFInet通信技术使这种集成成为可能。PROFInet 是Process Field Net的缩写,它是Profibus客户、生产商与系统集成联盟协会推出的在PROFIBUS与以太网间全开放的通信协议。PROFInet是一种基于实时工业以太网的自动化解决方案,包括一整套完整高性能并可升级的解决方案,可以为PROFIBUS及其他各种现场总线网络提供以太网移植服务;PROFInet标准的开放性保证了其长远的兼容性与扩展性,从而 可以保护用户的投资与利益。PROFInet可以使工程与组态、试运行、操作和维护更为便捷,并且能够与PROFIBUS以及其它现场总线网络实现无缝集成与连接。工程实践证明,在组建企业工控网络时采用PROFInet通讯技术可以节省近15%的硬件投资。 2 PROFInet通讯标准 PROFInet可以提供办公室和自动化领域开放的、一致的连接。PROFInet方案覆盖了分散自动化系统的所有运行阶段,它主要包含以下方面:(1)高度分散自动化系统的开放对象模型(结构模型);(2)基于Ethernet的开放的、面向对象的运行期通信方案(功能单元间的通信关系);(3)独立于制造商的工程设计方案(应用开发)。PROFInet方案可以用一条等式简单而明了地描述:PROFInet=Profibus+具有PROFIBUS和IT标准Ethernet的开放的、一致的通信。 2.1 PROFInet设备的软件结构 PROFInet设备的软件覆盖了现场设备的整个运行期通信,基于模块化设计的软件包含若干通信层,每层都与系统环境一致。PROFInet软件主要包括一个RPC(Remote Procedure Call)层,一个DCOM(Distributed Component Object Model)层和一个专门为PROFInet对象定义的层。PROFInet对象可以是ACCO(Active Connection Control Object)设备、RT auto (Runtime Automation)设备、物理设备或逻辑设备。软件中定义的实时数据通道提供PROFInet对象与以太网间的实时通信服务。PROFInet通过系统接口连接到操作系统(如WinCE),通过应用接口连接到控制器(如PLC)。

STM32-PWM输出总结讲课讲稿

学习后发现stm32的定时器功能确实很强大,小总结一下方便以后使用的时候做参考。Stm32定时器一共分为三种:tim1和tim8是高级定时器,6和7是基本定时器,2—5是通用定时器。从名字就可以看得出来主要功能上的差异。今天我主要是用定时器做pwm输出,所以总结也主要是针对pwm方面的。 先大致说下通用和高级定时器的区别。通用的可以输出四路pwm信号互不影响。高级定时器可以输出三对互补pwm信号外加ch4通道,也就是一共七路。 所以这样算下来stm32一共可以生成4*5+7*2=30路pwm信号。接下来还有功能上的区别:通用定时器的pwm信号比较简单,就是普通的调节占空比调节频率(别的不常用到的没去深究);高级定时器的还带有互补输出功能,同时互补信号可以插入死区,也可以使能刹车功能,从这些看来高级定时器的pwm天生就是用来控制电机的。 Pwm输出最基本的调节就是频率和占空比。频率当然又和时钟信号扯上了关系。高级定时器是挂接到APB2上,而通用定时器是挂接到APB1上的。APB1和APB2的区别就要在于时钟频率不同。APB2最高频率允许72MH,而APB1最高频率为36MHZ。这样是不是通用定时器只最高36MHZ频率呢,不是的;通用定时器时钟信号完整的路线应该是下面这样的:AHB(72mhz)→APB1分频器(默认2)→APB1时钟信号(36mhz)→倍频器(*2倍)→通用定时器时钟信号(72mhz)。 在APB1和定时器中间的倍频器起到了巨大的作用,假如红色字体的“APB1分频器”假如不为1(默认是2),倍频器会自动将APB1时钟频率扩大2倍后作为定时器信号源,这个它内部自动控制的不用配置。设置这个倍频器的目的很简单就是在APB1是36mhz的情况下通用定时器的频率同样能达到72mhz。我用的库函数直接调用函数SystemInit(); 这个函数之后时钟配置好了:通用定时器和高级定时器的时钟现在都是72mhz(你也可以自己再配置一下RCC让他的频率更低,但是不能再高了)。定时器接下来还有一个分频寄存器:TIMX_PSC 经过他的分频后,才是定时器计数的频率。所以真正的时钟频率应该是72mhz/(TIMX_PSC-1),我们设为tim_frepuency下面还会用到。 stm32的时钟频率弄得确实是很饶人的,所以关键就是先要把思路理清楚。时钟的频率弄好了下面终于可以开说重点PWM了。当然还少不了频率:pwm主要就是控制频率和占空比的:这两个因素分别通过两个寄存器控制:TIMX_ARR和TIMX_CCRX。ARR寄存器就是自动重装寄存器,也就是计数器记到这个数以后清零再开始计,这样pwm的频率就是tim_frequency/(TIMX_ARR-1)。在计数时会不停的和CCRX寄存器中的数据进行比较,如果小于的话是高电平或者低电平,计数值大于CCRX值的话电平极性反相。所以这也就控制了占空比。 下面是定时器1的配置代码: GPIO_InitTypeDef GPIO_InitStructure2; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; TIM_BDTRInitTypeDef TIM_BDTRInitStructure; //第一步:配置时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA| RCC_APB2Periph_GPIOB|RCC_APB2Periph_TIM1 ,ENABLE); //第二步,配置goio口 /********TIM1_CH1 引脚配置*********/

相关主题
文本预览
相关文档 最新文档