MSP430网络接口设计指南_第1页
MSP430网络接口设计指南_第2页
MSP430网络接口设计指南_第3页
MSP430网络接口设计指南_第4页
MSP430网络接口设计指南_第5页
已阅读5页,还剩8页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MSP430网络接口设计指南JY430_NET V1.01开发板使用说明感谢您选用了JY430_NET系列开发板,希望这款开发板能让您如虎添翼。声明:本文档仅适用于第九单片机开发网的JY430_NET系列开发板这款开发板的概况如下图所示:1.使用 MSP430F149主MCU, 2K RAM, 60kflash, 48个I/O pin, 双uart 口, 8路12位A/D转换2.TCP/IP接口采用 工业级CS8900芯片3.带有USB通信接口,适合使用笔记本的朋友进行调试。4.主电路板带: RS232双工通信接口DB9输出公座; I2C 接口存储器一块(升级为铁电存储器FM24CL16) 擦除寿命1亿次; 3.3V稳压集成电路采用高稳定度AS1117-3.3 数据口P4和所有多余I/O口引出,便于扩展 配有高频(HF)和低频(LF)两种晶振,可方便选择 各单元电路间有良好去耦合措施,大面积接地技术,电磁兼容性能良好5.具有板载硬件实时钟PCF8563,并搭配电池,满足特定应用需要。6.配备了硬件外置看门狗芯片MAX706,使得这个开发板可以长期进行稳定的使用,也可以直接作为产品板用于设备当中。开发板供电采用了外界电源方式,使用+5V直流电源输入。为了维持稳定性,USB部分不作为供电输入。网络部分的+3.3V供电和232、USB接口部分的供电分别有一块LM1117负责,这样可以最合理的进行功耗的分配,整个电路板不会有任何器件发热,从而增强电路的可靠性。本开发板搭配的网络部分程序有两个。其他程序均包含在内。本文档用于大连酒游科技有限公司(第九单片机开发网 )的MSP430以太网开发板。如有不明,请联系QQ:15532299 也可在第九单片机开发网相关栏目下边进行提问。实验一:UDP传输实验这个功能是完成了UDP通信的一个基本的流程。PC 串口 USB网络口以太网交换机开发板RS232USB网络口这里要说明一下的是,开发板上的USB接口是使用CP2102作为转换桥的虚拟串行接口,在使用之前,需要安装驱动程序:安装方法详见另外的说明。这里,程序在初始化的时候,设置MSP430的两个串口均为:波特率:115200bps;8位数据位、1位停止位;无校验位。在程序“tcpip.h”里,定义类下边的常数/ easyWEB-stack definitions#define MYIP_1 192 / our internet protocol (IP) address#define MYIP_2 168#define MYIP_3 1#define MYIP_4 190#define SUBMASK_1 255 / subnet mask#define SUBMASK_2 255#define SUBMASK_3 255#define SUBMASK_4 0#define GWIP_1 192 / standard gateway (used if remote#define GWIP_2 168 / IP is no part of our subnet)#define GWIP_3 1#define GWIP_4 1开发板的默认IP为90;子网掩码:;网关设置为:.您可以根据您所在的局域网设置进行修改。修改之后,连接交换机,在windows中进行最基本的探测,看电路是否可以ping通。通过 开始 运行 - ping 90 -t看回应是否正常。联通之后,将例程“CS8900A_UDP_UART”中的程序写入到开发板中。这个程序完成了将一组数据的第3个到第7个数据透明传输到串行接口上去。例如,通过UDP调试助手,向目的IP(90)的一个固定端口(程序中为UDPLocalPort = 1002;)然后选择设置结束,可以发数据了。发送数据(5512345 或 16进制 35 35 31 32 33 34 35)CS8900会接收到UDP数据,然后产生一个状态标志位,MSP430在扫描标志位的时候,会得知有数据需要接收。if (!(SocketStatus & SOCK_ACTIVE) TCPPassiveOpen(); DoNetworkStuff();在DoNetworkStuff();函数里有下面的程序。if (ActRxEvent & RX_OK) if (ActRxEvent & RX_IA) ProcessEthIAFrame(); if (ActRxEvent & RX_BROADCAST) ProcessEthBroadcastFrame(); 程序会执行ProcessEthIAFrame();函数,并且在这个函数里进行IP确认、端口确认,协议分类等工作。if (MyIP0 = TargetIP0) & (MyIP1 = TargetIP1) switch (ProtocolType) case PROT_ICMP : ProcessICMPFrame(); break; case PROT_TCP : ProcessTCPFrame(); break; case PROT_UDP : ProcessUDPFrame(); break; 然后,UDP包使用ProcessUDPFrame()函数进行数据读出。经过解包,MSP430会得到这组数据,将数据存放到数组UDPData中。if (UDPSegDestPort != UDPLocalPort) return; UDPCode = ReadFrameBE8900(); UDPCarck = ReadFrameBE8900(); UDPData4 = ReadFrameBE8900(); UDPData3 = ReadFrameBE8900(); UDPData2 = ReadFrameBE8900(); UDPData1 = ReadFrameBE8900(); UDPData0 = ReadFrameBE8900(); UDPSegDestPort = ReadFrameBE8900();再置上SOCK_DATA_AVAILABLE、SOCK_TX_BUF_RELEASED两个标志位。 SocketStatus |= SOCK_DATA_AVAILABLE;SocketStatus |= SOCK_TX_BUF_RELEASED; 然后,在主程序中,通过如下程序的执行。 if(SocketStatus & SOCK_DATA_AVAILABLE) for(unsigned int i=0;i 8; if (SocketStatus & SOCK_TX_BUF_RELEASED) TCPTxDataCount = 10; while (!(IFG2 & UTXIFG1); TXBUF1=RX_DATA3; while (!(IFG1 & UTXIFG0); TXBUF0=RX_DATA3; while (!(IFG2 & UTXIFG1); TXBUF1=RX_DATA2; while (!(IFG1 & UTXIFG0); TXBUF0=RX_DATA2; while (!(IFG2 & UTXIFG1); TXBUF1=RX_DATA5; while (!(IFG1 & UTXIFG0); TXBUF0=RX_DATA5; while (!(IFG2 & UTXIFG1); TXBUF1=RX_DATA4; while (!(IFG1 & UTXIFG0); TXBUF0=RX_DATA4; while (!(IFG2 & UTXIFG1); TXBUF1=RX_DATA7; while (!(IFG1 & UTXIFG0); TXBUF0=RX_DATA7; SocketStatus &= SOCK_DATA_AVAILABLE; 把这5个数据输出至RS232和USB虚拟串口两个接口。两个串口同时都会有数据输出,这个部分建议使用下面的串口调试工具这个工具对USB转串口的芯片支持更好一些。设置如下:(COM1和COM4的设置相同)PC机通过串口调试助手可以接受到“12345”这几个数。如果使用的是我们自己开发的“UDP通讯调试助手”,那么设置基本是一样的。可以参考下边的设置:设置好之后,点击打开端口,会显示相关信息。然后输入55+“待传数据”,即可发送实验二:TCP通信实验PC 串口 USB网络口以太网交换机开发板RS232USB网络口连接方法和上边的实验类似,只是不一定会需要串口线和USB线。以太网协议程序的具体执行过程和上面的程序也相差不多。TCP连接的端口为:TCPLocalPort = 2025;这个一定要写对!点击发送,还是发“5512345”这样一组数据。只是在执行协议分类程序的时候if (MyIP0 = TargetIP0) & (MyIP1 = TargetIP1) switch (ProtocolType) case PROT_ICMP : ProcessICMPFrame(); break; case PROT_TCP : ProcessTCPFrame(); break; case PROT_UDP : ProcessUDPFrame(); break; 会转至ProcessTCPFrame();进行处理。程序在这里进行了处理,根据不同的TCPIP动作,做了不同的分支判断。当进行数据通信的时候执行的是if (TCPStateMachine = ESTABLISHED) | (TCPStateMachine = FIN_WAIT_1) | (TCPStateMachine = FIN_WAIT_2) if (NrOfDataBytes) / data available? if (!(SocketStatus & SOCK_DATA_AVAILABLE) / rx data-buffer empty? DummyReadFrame8900(6); / ignore window, checksum, urgent pointer CopyFromFrame8900(RxTCPBufferMem, NrOfDataBytes); / fetch data and TCPRxDataCount = NrOfDataBytes; / .tell the user. SocketStatus |= SOCK_DATA_AVAILABLE; / indicate the new data to user TCPAckNr += NrOfDataBytes; PrepareTCP_FRAME(TCPSegAck, TCPAckNr, TCP_CODE_ACK); / ACK recd data /SocketStatus &= SOCK_DATA_AVAILABLE; / indicate the new data to user else break; / stop processing here, we cannot send an / acknowledge packet as the received data / could not be passed to the app layer那么能够看出来,从网络方面接收到的数据,都已经通过上面的程序存储在了RxTCPBufferMem寄存器中了。我们只要读取这里面的数据就能够知道收到了什么。这个程序里还置位了标志位:SocketStatus |= SOCK_DATA_AVAILABLE;而在主程序中,有如下的程序:if(SocketStatus & SOCK_DATA_AVAILABLE) for(unsigned int i=0;i 8; if(RX_DATA0=0x35)&(RX_DATA1=0x35) if (SocketStatus & SOCK_TX_BUF_RELEASED) TCPTxDataCount = 10; ACCESS_UINT(TxFrame1Mem, TCP_DATA_OFS) = 0x3130; ACCESS_UINT(TxFrame1Mem, TCP_DATA_OFS + 2) = 0x3332; ACCESS_UINT(TxFrame1Mem, TCP_DATA_OFS + 4) = 0x3534; ACCESS_UINT(TxFrame1Mem, TCP_DATA_OFS + 6) = 0x3736; ACCESS_UINT(TxFrame1Mem, TCP_DATA_OFS + 8) = 0x3938; ACCESS_UINT(TxFrame1Mem, TCP_DATA_CODE_OFS) = SWAPB(0x5000 | TCP_CODE_PSH | TCP_CODE_ACK); / TCP header length = 20 BUF_From_PCCommand0 = RX_DATA2; RXD_From_PCData4 = RX_DATA3; RXD_From_PCData3 = RX_DATA4; RXD_From_PCData2 = RX_DATA5; RXD_From_PCData1 = RX_DATA6; RXD_From_PCData0 = RX_DATA7; Process_From_PC(); TCPTransmitTxBuffer(); SocketStatus &= SOCK_DATA_AVAILABLE;我们使用了一个小小的协议字,如果收到的数据最开始的两个数是“5”的话(0x35 0x35),就将接受到的数据存储

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论