⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 供暖控制_以太网控制器.h

📁 用MSP430汇编写的简单IP协议程序
💻 H
字号:
;*****************************************************************************************
;               数字化信息家电新型网关以太网接口源程序
;                                 以太网控制器.h    ---------- Dying  V1.0版
;*****************************************************************************************
;注:
;    该头文件中定义了以太网控制器控制参数和相关变量,以及接口控制CPU的相关定义
;-----------------------------------------------------------------------------------------    
;缓冲区结构设计:
;                       |-------------------|        |-----------------|
;     Enthernet ------->| 以太网接收Buffer   |------->|RS232发送Buffer   |---------> RS232数据
;                       |-------------------|        |-----------------|
;                                                                                           
;                                |-------------------|
;                       |<-------|ARP应答以及ICMP发送 |
;                       |        |-------------------|            
;     Enthernet <-------|                                          
;                       |        |-------------------|           
;                       |<-------|IP,TCP,UDP发送     | <--------------------------- RS232数据
;                                |-------------------|
;
;*****************************************************************************
;以太网控制器相关参数定义

Baud19200               EQU     0           ;串口波特率19200
Baud38400               EQU     1           ;串口波特率38400
;*****************************************************************************
;MSP430相关参数定义
RAMOrig	                EQU     0200h	    ; RAM Start
FlashAddress            EQU     1000H       ; FLASH Start
FlasnWirelessID         EQU     1000H       ; 接入点无线端的ID号

CharacterWord1          EQU     8263H       ;特征字63828263
CharacterWord2          EQU     6382H 

#if     Baud19200      
U0MCTL_Value            EQU     0D5H        ;波特率19200
U0BR0_Value             EQU     0A0H
U0BR1_Value             EQU     001H          
#endif

#if     Baud38400
U0MCTL_Value            EQU     086H        ;波特率38400
U0BR0_Value             EQU     0D5H
U0BR1_Value             EQU     000H          
#endif                    

OverWait                EQU     0E000H     
IOBase                  EQU     20H         ;硬件决定IO基地址从320H开始
MaxTCP_UDPCounter       EQU     110         ;要修改这个数同时要修改串口通讯数据的定义
;*****************************************************************************
#define	P1SEL_DEFAULT	00000000B,&P1SEL		
#define	P2SEL_DEFAULT	00000100B,&P2SEL		
#define	P3SEL_DEFAULT	00110000B,&P3SEL
#define	P4SEL_DEFAULT	00000010B,&P4SEL		
#define	P5SEL_DEFAULT	00000000B,&P5SEL		
#define	P6SEL_DEFAULT	00000000B,&P6SEL		

#define	P1DIR_DEFAULT	00100010B,&P1DIR		
#define	P2DIR_DEFAULT	00100000B,&P2DIR		
#define	P3DIR_DEFAULT	11010000B,&P3DIR		
#define	P4DIR_DEFAULT	00010000B,&P4DIR		
#define	P5DIR_DEFAULT	11111111B,&P5DIR		
#define	P6DIR_DEFAULT	11111111B,&P6DIR		

#define	P1OUT_DEFAULT	00100010B,&P1OUT
#define	P2OUT_DEFAULT	00000000B,&P2OUT
#define	P3OUT_DEFAULT	11000000B,&P3OUT
#define	P4OUT_DEFAULT	00000000B,&P4OUT
#define	P5OUT_DEFAULT	00000000B,&P5OUT
#define	P6OUT_DEFAULT	00000000B,&P6OUT
;-------------------------------------------------------------------------------
#define	Ethernet_CS	02H,&P1OUT
#define Ethernet_RESET  20H,&P1OUT
#define	Ethernet_READY  08H,&P1IN
#define Ethernet_PSEN   20H,&P2OUT 
#define	Ethernet_IORB   40H,&P3OUT
#define Ethernet_IOWR   80H,&P3OUT
#define C_Control1      10H,&P4OUT
#define C_Control2      08H,&P4IN 

#define WriteData       0FFH,&P5DIR
#define ReadData        000H,&P5DIR   

#define AddressBUS      P6OUT
#define WriteDataBUS    P5OUT 
#define ReadDataBUS     P5IN
;*****************************************************************************
        RSEG       UDATA0   

;传口通讯数据定义 (是否需要做环形缓冲区)       

IP_RS232_FrameLength    DS      0
IP_RS232_FrameLengthLow DS      1
IP_RS232_FrameLengthHgh DS      1
IPToRS232StartData      DS      0
IP_DateCharacterHigh    DS      2 
IP_DataCharacterLow     DS      2
IP_Reserve1             DS      2
IP_Reserve2             DS      2
IP_Reserve3             DS      2
IP_Reserve4             DS      2
IP_RS232_FrameAddress   DS      6
IP_RS232_FrameControl   DS      1
IP_RS232_FrameType      DS      1
IP_RS232_FrameData      DS      102
IP_RS232_CheckSum       DS      1
                        DS      1

RS232_IP_FrameLength    DS      0
RS232_IP_FrameLengthLow DS      1
RS232_IP_FrameLengthHgh DS      1
RS232ToIPStartData      DS      0
DateCharacterHigh       DS      2 
DataCharacterLow        DS      2
Reserve1                DS      2
Reserve2                DS      2
Reserve3                DS      2
Reserve4                DS      2
RS232_IP_Data           DS      0
RS232_IP_FrameAddress   DS      6
RS232_IP_FrameControl   DS      1
RS232_IP_FrameType      DS      1
RS232_IP_FrameData      DS      102
RS232_IP_CheckSum       DS      1
                        DS      1
                        
;  写入无线端
;  FF + FF + 0FH + 00 00 00 00 00 00 + 00H + 83H + 无线端ID + 校验和
;******************************************************************************
RAMWirelessID           DS      0           ; 无线端的ID号
RAMWirelessID6          DS      1
RAMWirelessID5          DS      1
RAMWirelessID4          DS      1
RAMWirelessID3          DS      1
RAMWirelessID2          DS      1
RAMWirelessID1          DS      1
RAMSelfIP               DS      0           ; 网关接入点IP地址
RAMSelfIP4              DS      1
RAMSelfIP3              DS      1
RAMSelfIP2              DS      1
RAMSelfIP1              DS      1

RAMModelMAC             DS      0           ; 无线端的MAC地址
RAMModelMAC6            DS      1
RAMModelMAC5            DS      1
RAMModelMAC4            DS      1
RAMModelMAC3            DS      1
RAMModelMAC2            DS      1
RAMModelMAC1            DS      1

RAMNetGateMAC           DS      0           ; 网关MAC地址  
RAMNetGateMAC6          DS      1
RAMNetGateMAC5          DS      1
RAMNetGateMAC4          DS      1
RAMNetGateMAC3          DS      1
RAMNetGateMAC2          DS      1
RAMNetGateMAC1          DS      1
RAMNetGateIP            DS      0           ; 网关的IP地址
RAMNetGateIP4           DS      1
RAMNetGateIP3           DS      1
RAMNetGateIP2           DS      1
RAMNetGateIP1           DS      1

UARTReceiveEntrance     DS      2
UARTReceiveCounter      DS      2
UARTTransmitEntrance    DS      2
UARTTransmitCounter     DS      2  
UDPTransmitCounter      DS      2

RandomData1             DS      2
RandomData2             DS      2    

EnrolType               DS      2
WaitARPCounter          DS      2
LivingTimeCounter       DS      2

PrepareCheckSum         DS      0
PrepareCheckSumLow      DS      1
PrepareCheckSumHigh     DS      1
PrepareCheckSumTemp     DS      2
CheckSum_TCPUDP         DS      0
CheckSum_TCPUDPHigh     DS      1
CheckSum_TCPUDPLow      DS      1
CheckSumTemp            DS      2

RS232DelayRegister      DS      2
BoundaryPointer         DS      1
                        DS      1

TempRAMIP               DS      0
TempRAMIP4              DS      1
TempRAMIP3              DS      1
TempRAMIP2              DS      1
TempRAMIP1              DS      1


WorkStationState        DS      2
#define RS232BufferFull         0001H,WorkStationState
#define StartEnrolBit           0002H,WorkStationState
#define EnrolBeNetGate          0004H,WorkStationState
#define StoreStateBit           0008H,WorkStationState
#define RS232SendNowBit         0010H,WorkStationState
#define SelectHighLowBit        0020H,WorkStationState
#define StartARPBit             0040H,WorkStationState
#define WaitARPAnswerBit        0080H,WorkStationState
#define SelectBufferBit         0100H,WorkStationState

;*****************************************************************************
;共228个字节

;以太网控制器接收数据:
;1、读取CR寄存器中的并保存TXP
;2、向CR写入21H停止AX88796
;3、发送或接收数据需要等待1.5ms使AX88796完成数据处理
;4、清除寄存器RBCR0和RBCR1
;5、如果TXP为0,则设置Resend=0并跳到第6步,如果TXD为1,则读取中断寄存器,如果PTX或TXE为1则设置Resend=0跳到第6步
;6、通过设置TCR中的D1和D2使得AX88796进入LoopBack模式
;7、向CR寄存器中写入22H,开始AX88796
;8、从接收缓冲区中移出数据包
;9、复位中断标志寄存器中的OVW位
;10、推出LoopBack模式
;11、如果Resend为1则复位Resend并向CR中写入26H发送命令,否则不需要做什么
;
;
;以太网控制器发送数据:
;1、AX88796发送数据数量最少位64个字节不足是应给补00H
;2、可以通过DCR寄存器设置发送状态
;
;


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -