• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

ARM2132如何与上位机通讯

未解之谜 2017-02-27 浏览量:1234
         手上用ARM7 2132+28J60网口做的一个硬件,现在要求 上位机通讯,ARM触发的信号上位机能获取, 就是不知道如何与上位机通讯,感觉挺难的,有坛子的大神,帮帮,再此先谢谢了
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 用UDP,固定IP,这样最简单了。

    建个char cRecvBuffer[512],用来做缓冲,一般来说512个字符正合适

    建个int或者bool类型的rCnt,让它等于如下:

    rCnt=sockSrvrUdp.ReceiveFrom(cRecvBuffer,512,ipStr,uPort);

    其中cRecvBuffer上面介绍过,ipStr是下位机的ip号,uPort是下位机与你通讯的端口号

    如果rCnt不等于NULL,就进入一下一步数据分析。


    数据分析:

    假设你的通信数据是以4个字节做帧头,然后后面都是float类型数据。

    建个float数据的指针,指到有效数据的头部。一般习惯用tmpf命名,tmp表示临时,f表示float类型

    float* tmpf=(float*)(cRevBuffer+4);

    从网络数据包中取出float型数据,赋值到一个你自己定义的数组,这个数组的名字一般可以叫recvData

    for(i=0;i<100;i++)
    {
    recvData[i]=*(tmpf+i);
    }

    其中,float数据总数我写成100了,这个根据你实际要接收多少个来定。

    注意:一个float要4个char的字节,别把指针写越界了


    • 发布于 2017-02-27
    • 举报
    • 评论 1
    • 0
    • 0
未解之谜 回复了 xukejing:先固定IP,如何固定? 回复

其他答案 数量:7
  • ARM触发的信号上位机能够接收到,说明这个硬件没问题,软件方面要看看原厂是否有例程

    如果你要整套方案建议去外包那里


    • 发布于2017-02-27
    • 举报
    • 评论 1
    • 0
    • 0
未解之谜 回复了 chen0000009 :理解了就要自己设计了 回复

  • 首先你要确定想通过什么通信方式和上位机通信,串口?网口?wifi?

    选好以后就简单啦,无非两个地方实现下收发函数

    最好么来一个gpio作为中断管脚,可以通知上位机,或者上位机常开接受

    • 发布于2017-02-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 1、硬件上是28J60,那么你的通讯必然要使用网络了。

    2、“ARM触发的信号上位机能获取”,这个是什么意思,你的LPC2132可以与电脑进行ping通么?

    3、可以ping通的前提下,你要考虑的是协议的问题了。

    4、你的应用场合是什么,工业上的、电力上的、还是什么?

    5、协议可以使用网络modbus、IEC104、或是你直接透传。

    6、上位机的系统是哪个,windows下与linux下的网络编程还是有一定的区别的。

    7、各发便于客户的使用,上位机的环境最好选择大众的吧。要不客户要用个上位机还要配置半天的环境,用户体验不好。windows上可以试试C#

    • 发布于2017-02-27
    • 举报
    • 评论 1
    • 0
    • 0
未解之谜 回复了 汉云 :协议一般哪里有问题呢? 回复

  • 28J60是SPI转网口的,内置TCPIP协议,找个SPI通信的例程就行
    • 发布于2017-02-28
    • 举报
    • 评论 1
    • 0
    • 0
未解之谜 回复了 chen0000009 :没这么简单吧 回复

  • 这个的片子比较老了,网上例程很多搜搜吧
    • 发布于2017-02-28
    • 举报
    • 评论 1
    • 0
    • 0
未解之谜 回复了 heaton426 :嗯,搜搜看吧 回复

  • 首先砸门先确定一个问题,你的板卡想和PC机使用什么通信方式??

    串口UART??  USB ???或者说网络? 你的上位机是什么平台??windonws还是Linux??

    如果想使用UART或者串口于的通信方式,那么再windonws上有相应读取USB设备和COM口设备的接口,将数据获取就是了。至于数据协议的格式!由你自定义就好了!或者说加上你的上位机是现成的程序,那么就根据它的数据协议打包数据上传给上位机即可。

    如果你的上位机是在Linux平台上运行的,那么当你插入USB或者串口时,会在/dev目录下生成相应的设备节点,然后就从里面读取数据或者写数据就好了。都不难。


    如果你使用的是网络的方式进行通信!那么直接将上位机写成一个服务器。你的开发部配置成客户端,可以使用TCP,也可以UDP,不过个人绝对TCP会稳定些。这样就更简单了。

    • 发布于2017-02-28
    • 举报
    • 评论 1
    • 0
    • 0
未解之谜 回复了 东方青 :不是有个网口么? 回复

相关问题

问题达人换一批

ARM2132如何与上位机通讯