登录
首页 » Others » IO口模拟I2C从机

IO口模拟I2C从机

于 2020-12-05 发布
0 116
下载积分: 1 下载次数: 1

代码说明:

在stm32单片机上,用IO口的上升沿和下降沿中断设计的I2C从机代码。测试通过。所有过程用状态机来控制,没有cpu空延时。核心代码和单片机相关代码分开,方便移植。主要用在项目验证和学习交流!

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • Verilog Ieee 1588
    基于FPGA实现ieee1588同步技术
    2021-05-06下载
    积分:1
  • 用labview设计的虚拟电子电压表(有效值、峰值、平均值)
    用labview设计的有效值电压表,均值电压表,峰值电压表设计简单明了,可以在此基础上修改输入项,就可以和采集卡等硬件连接了
    2021-05-07下载
    积分:1
  • [力荐] 矩阵向量求导法则 矩阵微商
    目录1. 向量、矩阵对元素求导 21.1 行向量对元素求导 21.2 列向量对元素求导 21.3 矩阵对元素求导 22. 元素对向量、矩阵求导 32.1 元素对行向量求导 32.2 元素对列向量求导 32.3 元素对矩阵求导 33. 向量对向量求导 43.1 行向量对列向量求导 43.2 列向量对行向量求导 43.3 行向量对行向量求导 43.4 列向量对列向量求导 44. 矩阵对向量求导 54.1 矩阵对行向量求导 54.2 矩阵对列向量求导 55. 矩阵对向量求导 65.1 行向量对矩阵求导 65.2 列向量对矩阵求导 65.3 矩阵对矩阵求导 6
    2020-11-28下载
    积分:1
  • 译课设计报告 语法分析器.doc
    编译课程设计报告 语法分析器.doc一、实验题目 设计一个简单的表达式语法分析器 (采用递归下降方法设计实现)二、实验目的1、 了解形式语言基础及其文法运算;2、 熟悉语法分析原理及4种常用的语法分析方法;其中: 四种算法为(1)设计算术表达式的递归下降子程序分析算法(2)设计算术表达式的LL(1) 分析算法(3)设计算术表达式的简单优先分析算法(4)设计算术表达式的SLR(1) 分析算法 3、选择上述一种方法并设计一个表达式的语法分析器。 (本实验设计的是递归下降的表达式语法分析器)三、实验内容
    2020-11-29下载
    积分:1
  • AB PLC 与modbus 通信
    AB PLC 与modbus 通信AB PLC 与modbus 通信AB PLC 与modbus 通信AB PLC 与modbus 通信www.PlcwoRld.cnu变频器触摸屏伺服启动气出程102Sepam2000与远程监控系统之间的通信是采用 MODBUS协议的通信方式MODBUS的通信采用的是一种主/从式数据传输,在主从结构的通信方式中有一台主机,多台从机,主机可与各个从机作双向通信,而各从机之间不能通信。主机与各个从机通信的报文形式为请求/响应帧方式。每次通信均由主机发起,不需握手。主机发出请求帧后,等待从机返回响应帧直至响应时间超时。从机只能通过提供数据响应主机的请求,或根据请求做出相应的动作。MODBUS协议定义了主札请求的格式,包括:请求的编址,要求动作的功能码,传输数据和错误校验等。请求中的编址(即地址码)提供接收主机报文霉的从机地址,从机根据地址判别是否接受该请求,用户必须设置每台从机的地址。功能编码告诉指定编址的从机完成什么样的动作。数据字段屮包含了从机执行任务时所需的附加信息。例如,功能编码03表示读取从机的保持寄存器并w毁w.91{κ其中的内容,数据区中的信息就益领诉从机从哪个寄存器开始读,需要读的寄冇器数。错淏校验字段为从杋提供了信息完整性校验的方法。同样,响N→oomo应的格式也是采用 MODBUS协议结构,从杋响应的功能编码与接受的请求的功能编码相对应,数据字段包含根据请求返回的数据,错误校验字段允许主机确认信息内容是合有效。MODBUS协议共有24种功能编码,但是并不都适用于 Sepam2000,实际应用中Sepam2000只是支持下面有限的几种:01读取输出状态02读取输入状态03读取内部寄存器内容04读取输入寄存器内容05强制单个输出状态第3页共10页www.PlcwoRld.cnu变频器触摸屏伺服启动气出程10206刷新单个寄存器内容07读取异常事件状态08诊断测试11读取计数器和状态字15强制多个输出状态16刷新多个寄存器内容如果主机希望读取2号 Sepam2000从机中寄存器0805h-080Ah的内容,则需要调用功能03。主机请求和从机响应的帧格式如下:请求帧地址功能号数据起始寄存器编址寄存器数目错误校验字段030C0506CRC16w3M9HMo应帧:WwW PLCworld cn字节数据寄存器数据寄存器错误校地址功能号计数(0805)(080A)验字段03OCDatalData6CRC16而如果主机希望刷新2号 Sepam2000从机中寄存器0810h的内容并把寄存器内容设置为1000,则需要调用功能06。主机请求和从机响应的帧格式如下:请求帧:地址功能号寄存器编址设置值错误校验字段06OCOE1000CRC16响应帧:(返回收到的请求帧)地址功能号寄存器编址设置值错误校验字段06OCOE1000CRC16第4页共10页www.PlcwoRld.cnPC变频器触挾屏伺服镦启动電气里程-1521Sepam2000的帧格式以及所执行的功能都有明确的定义,不能随意更改。在通信过程中,要确保主机和各从机的对应关系正确。此外,用户可以根据实际需要配置合适的传输波特率、宁符奇偶校验、停止位的个数等通信参数设置。四. AB PLC中 MODBUS协议的实现1.MCM模块的通信控制PROSOFT TECHNOL0GY公司的3100/3150-MOM通信模块,相当于网络接冂,PLC通过MoM模块与 MODBUS总线相连。MOM模块能快速、可靠地在 AB PLC中实现 MODBUS协议。3100/♂315σ0-MM通信模块可供用户选择使用主机模式或者从机模式。当MCM模块设定为主机,它对连接到总线上的从机进行控制,支持 MODBUS协议屮(01、02、03、04、05、06、15、16)8种功能编码,可以发送多达一百条定制的请求WM91H样am并支持以“广播”方式发出请求盖MCM模块指定为从机,它响应主机§的请求,此时能够支持 MODBUS协议中(01、02、03、04、05、06、08、15、16)9种功能编码。同时,无论是主机模式或者是从机模式,3100/3150MCM通信模趴都支持 ASCII和RTU两种传输模式当 AB PLC配置了3100/3150-MCM通信模块作为主机模式时,PLC采用周期扫描方式,按请求指令的顺序与从机交换数据。每次扫描期间,处理器使用逻辑写指令将主机内存中要输出到各从机的数据传送到3100/3150-MM通信模块屮的发送缓冲区,模块根据存储的功能指令,发送到指定的从机;而各从机响应后返回的数据,3100/3150-ⅦOM通信模块将其先存放在接收缓冲区,然后PLC使用逻辑读指令把数据移入相应的输入数据存储区。周而复始,使主机与从机中的数据得到周期性的刷新。整个数据流程如图2所示:第5页共10页www.PlcwoRld.cnu变频器触摸屏伺服启动气出程102PLC内存PLC指令MCM缓冲MCMMODBUS模式设备数据读数据:-(从机主机推令一(写)指令一主二一从参数参数配置配置图2MCM模块数据流程示意图2.MCM模块与 MODBUS的硬件连接MCM模块使用的是与RS232C兼容的标准通讯接口,但在实际应用中由于要实w{M.91耙通信,所以采用RS485方式。图3是3150-MCM模块9芯串行口与 MODBUS 8的连接图3150-MCMMODBUSTxRxD+ 9TxRxDTxRxDTxRXDRTS 7G№D5GND图33150MCM端口与 MODEUS连接示意图3.MM模块的缓冲区管理PLC与MM模块之间是通过模块输入、输出映像文件进行数据传送。PLC与数据时,将数据写入输出映像文件,然后3100/3150-MM通信模块把数据映射第6页共10页www.PlcwoRld.cnu变频器触摸屏伺服启动气出程102到相应的缓冲区位置上;PLC读数据时,根据映射地址,从输入映像文件屮读取模块缓冲区中对应地址的数据。映像文件的数据传送单位为一个50字节的数据块,PLC必须循环地一次传送一个数据块。MCM把缓冲区按数据传送的单位大小,分为若干个块,并一一标号,用块号对应起来,并且划分为三个区,分别用于数据、指令、参数设置。数据存储区从0块号开始,结束于79块号,中间有4000个字节的空间,用于存储接收的数据和发送的数据,是主札、从札交换数据的场所;指令存储区从第80块至第99块,共1000°个字节,用于存储主机模式下,模块的功能指令表,每次扫描,顺序按功能指令列表向从机发出请求帧:第25块号前40个字节则专门定义为模块设置参数存储区,用于初始化模块。在通信过程中,首先要对主机进行初始化,即对第255块号对应的缓冲区ww.91{进行参数配置,主要是定义通信端舶设置,模块缓冲区的详细划分。设置的有以下参数:N→oomo定义MCM通信模块两个独立的通讯接口设置。包括:选择主机模式或者从机模式、定义字符奇偶校验、停止位的个数,传输的波特率,响应延时等参数。〈2〉定义模块的缓冲区中冇储接收数据的数据冇储区。包括:接收数据存储区的起始块号,存储区的连续块数。③3〉定乂模块的缓洲区屮存储发送数据的数据存储区。包括:发送数据存储区的起始块号,存储区的连续块数。〈4〉定义模块的缓冲区中指令存储区。由于指令储区固定从80号数据块开始,所以只需指定存储区的块数。4.MCM模块的功能指令设置第7页共10页www.PlcwoRld.cnPC变频器触挾屏伺服镦启动電气里程-1521MCM模块处于主机模式下时,功能指令列表存放在模块缓区屮的指令存储区。主机向从札发出请求时,模块从指令存储区逐条读出功能指令,并按照MODBUS请求帧格式发送数据。指令存储区中每条功能指令的具体内容如下:1模块通信端口选择2从机的站地址。从机在接收数据时将本站编址的值与收到的站地址比较,以此判定信息是否是发给木站的。而主机在接收压则将收到的站地址与发送的站地址比较,以判断是否是正确的从机响应3指令的功能编码4源地址。即主机要发送或接收的数据在缓冲区中的起始数据地Wbn.91Hmi.com-Itwww.plcworld.Cn5数据长度。即主机要发送或接收的数据的字节数6目的地址。即从机要接收或响应的数据的寄存器地址数据的类型。用于标示读、写的数据是双字节的浮点数还是单字节的整数8轮询时间如果主机希望在1号通讯接冂读取2号 Sepam2000从机中寄存器0805h-080Ah的内容并存放到模块缓冲区第50个字节开始的连续6个字节中,功能指令内容如下:从机功能数据端口号源地址目的地址类型时间地址编码长度506080500第8页共10页www.PlcwoRld.cnu变频器触摸屏伺服启动气出程1025. AB PLC通讯程序的开发程序执行时,在第一个扫描周期,都必须设置MCM的状态,即初始化MM模块。通信程序屮,PLC在输入、输出映像文件屮为MCM缓冲区设置当前以及后续读写指针,分别指向当前MCM缓冲区数据块号,后续缓冲区数据块号。若MCM处于数据传送允许状态,即I1:1/0=1,00:1/0=0时,PLC判别当前读写指针,调用相应读写逻辑指令。如果指针指向接收数据的数据冇储区,则PC从jCM模块中接收数据:如果指针指向发送数据的数据存储区,则PLC向MCM模块发送数据;如果指针指向指令存储区,则PLC向MM模块传送功能指令,每次执行一个数据块的传送,并在传送后,把后续读写指针覆盖当前读与指针,w毁w91{M恧砟下个扫描周期进行下一个数据块的传送。PLC自动周期性扫描,按照编定的功能指令向从机的输入/输出数据进行发送/接收,以满足数据传输的要求。根据PLC的逻辑指令及MCM的通信原理,画出了图4所示的主机通信程序结构框图开始首次扫描时MCM初始化百传送允许?>是∈向接收数据区读数据指令一向发送数据区?>据[写数据指令是指向指令区?与功能指更改读写指针图4PLC程序框图第9页共10页www.PlcwoRld.cnPC变频器触挾屏伺服镦启动電气里程-1521五.结束语经过现场调试,实现了1台 AB PLC与13台 SEPAM2000组成的 MODBUS网络连接。实际应用证明,这种方式组成的系统结构简单,应用方便,能满足复杂的控制需要。参考文献3100/3150 MCM USER Manual, Pro Soft Tcchnology, 1997吵一2 AB PLC Programming Reference Manual, AB, 19973 Sepam2000 Communication protocol, Schneider, 1999W点M91HM|comWwW PLCworld cnN→oomo第10页共10页
    2020-11-05下载
    积分:1
  • STM32F407VET 基于DDS 用内置DAC实现实现多种波形输出,频率可调:范围1HZ-5MHZ
    STM32F407VET.基于DDS 用内置DAC实现多种波形(正弦 方波 三角波 锯齿波)输出,支持频率可调 (范围1HZ-5MHZ 在5MHz下精度大约100khz左右) 有自定义波形功能
    2020-11-30下载
    积分:1
  • Kinect相机标定
    非常详细的介绍Kinect相机的标定过程,是学习各种相机标定的参考材料。里面介绍了标定的原理标定的棋盘等。
    2020-12-04下载
    积分:1
  • 百万格子网站源码 格子铺网站导航商业源码
    格子铺网站导航商业源码_百万格子网站php源码此源码是我在淘宝买的,还没时间用,有需要的朋友拿去
    2020-12-04下载
    积分:1
  • Hog特征提取, 源码(免费)
    Hog特征提取,详细代码,输出的是特征大数组.
    2020-12-07下载
    积分:1
  • WPF:完美自定义MeaagseBox 动画 反弹 背景模糊 扁平化
    WPF:完美自定义MeaagseBox 动画 反弹 背景模糊 扁平化
    2020-06-26下载
    积分:1
  • 696518资源总数
  • 104269会员总数
  • 42今日下载