📄 供暖控制_以太网控制器.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 + -