查看: 1019|回复: 4

[经验分享] FreeModbus协议栈在LPC1768开发板上的移植

[复制链接]
  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2022-12-26 09:00:00 | 显示全部楼层 |阅读模式
    本帖最后由 jobszheng5 于 2023-1-3 11:33 编辑

    FreeModbus协议栈在LPC1768开发板上的移植
      Modbus协议,最开始由Modicon公司制定并发布。Modbus协议自从1979年出现后,使得成千上万台自动化设备能够通讯。也使其成为了工业串行链路的事实标准。

      其广泛的普及 有其协议的特点,我们在下文将重点说明。另一个非常优秀的特点就是其标准开放,免费使用。无许可证授权费用,亦不会侵犯知识产权,更加不会遭到封杀。

      Modbus协议,在OSI标准分层位于第七层——应用层,即其为一项应用层报文传输协议。正因为它为应用层协议,所以其用于通过不同类型的总线或网络连接的设备之间的客户端/服务器通讯,典型传输介质即为RS485。

    RS485与Modbus

      RS485总线(民间说明,其并非现场总线),做为工业自动化设备实时、可靠、低成本,部署性价比超级高的通讯链路自然应用非常广,其半双工的工作模式,典型应用场景即为“一主多从”,而Modbus协议又适配在“一主从从”的场景,两者“一拍即合”。“部署RS485就路Modbus协议”也就使二者常常形影不离,亲密无间。也给了初入行的小伙伴们一些假象,认为“Modbus只有RS485!”“RS485与Modbus是一回事!”现在明白了吗?

    协议格式

      Modbus协议,分为设备ID地址,功能码,寄存器起始地址,寄存器数量与CRC16校验字段。

    此处以功能码0x03,读输入线圈为例

    主机请求命令

    与非网21.png
    从机响应命令

    与非网22.png

      当然,Modbus还支持其它协议,这里由于篇幅原因不过多讲解。(如果有需要,大家在下面回帖哟,给版主些更新的力量)

    FreeModbus协议栈

      我们从github上面clone下来源代码。将代码copy到项目工程里,需要移植的文件,其将接口放置到了demo/bare/port文件夹。

      版主依然实现portserial.c与porttime.c中的API函数。其余两个文件并不需要咱们来修改。

    简单说要移植的内容API,LPC1768的串口的字符发送与接收,串口的使能与关闭。定时器的开启与中断产生等。

    验证

      因为Modbus协议是客户端/服务端的通讯模型,因为,我们的设备是从站,而上位机PC端为主站。在本次验证过程中,我们选用主站协议的典型软件ModbusPoll来实现。

      在配置好从站地址与寄存器地址后,ModbusPoll就开始循环读取LPC1768设备上的数据了。


    与非网20.png





    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
     楼主| 发表于 2022-12-26 09:34:00 | 显示全部楼层
    帖子是参加2022年年度庆典时简单开发的示例。
    结果在开发过程中,遭遇到了许多的困难,在解决的过程中,不断学习,不断探索,也更加充分理解了NXP公司LPC系列MCU的魅力。
    当然,另外一个方面,也体会到了FreeModbus协议栈在具体应用上面的性能上面的缺失。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 14:34
  • 签到天数: 271 天

    [LV.8]以坛为家I

    31

    主题

    2996

    帖子

    38

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    5322

    活跃会员

    最后登录
    2024-4-28
    发表于 2022-12-26 11:13:25 | 显示全部楼层
    膜拜膜拜,求源码,哈哈哈
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4

    帖子

    0

    新手上路

    Rank: 1

    积分
    43
    最后登录
    2024-2-19
    发表于 2024-1-25 19:36:54 | 显示全部楼层
    楼主厉害,我搞了几天,卡在串口中断发送的环节,始终不能进发送中断,不知道啥原因,请楼主不吝解惑!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
     楼主| 发表于 2024-1-26 10:02:36 | 显示全部楼层
    eefocus_3955752 发表于 2024-1-25 19:36
    楼主厉害,我搞了几天,卡在串口中断发送的环节,始终不能进发送中断,不知道啥原因,请楼主不吝解惑! ...

    这么古老的芯片,还是换个芯片使用吧!
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-29 17:44 , Processed in 0.165615 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表