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

📄 isomodem.h

📁 modem数据通信源码
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef __ISOMODEM_NEW_H__
#define __ISOMODEM_NEW_H__

#include "loopbuf.h"
#include "trace.h"
#include "switch.h"

#ifdef __cplusplus
extern "C"{
#endif

#define NEW_OS

#define DEBUG_MODEM_RECV

#define EM_PPP_NOINIT   0
#define EM_PPP_INITED   1

#define MCLK			(64431000) 

#define rULCON0		  	(*(volatile ulong*)0x1d00000)
#define rULCON1		  	(*(volatile ulong*)0x1d04000)
#define rUCON0		  	(*(volatile ulong*)0x1d00004)
#define rUCON1		  	(*(volatile ulong*)0x1d04004)
#define rUFCON0		  	(*(volatile ulong*)0x1d00008)
#define rUFCON1		  	(*(volatile ulong*)0x1d04008)
#define rUMCON0		  	(*(volatile ulong*)0x1d0000c)
#define rUMCON1		  	(*(volatile ulong*)0x1d0400c)
#define rUBRDIV0	  	(*(volatile ulong*)0x1d00028)
#define rUBRDIV1	  	(*(volatile ulong*)0x1d04028)

//	#define rUMSTAT1		(*(volatile ulong*)0x1D0401C)

#define rUTRSTAT0	  	(*(volatile ulong*)0x1d00010)
#define rUTRSTAT1	  	(*(volatile ulong*)0x1d04010)
#define rUERSTAT0	  	(*(volatile ulong*)0x1d00014)
#define rUERSTAT1	  	(*(volatile ulong*)0x1d04014)

#define rWTCON		  	(*(volatile ulong *)0x1d30000)
#define rWTDAT		  	(*(volatile ulong *)0x1d30004)
#define rWTCNT		  	(*(volatile ulong *)0x1d30008)

//Special
#define rUTXH1		  	(*(volatile uchar *)0x1d04020)
#define WrUTXH0(ch)		(*(volatile uchar *)0x1d00020)=(uchar)(ch)


/**********************************************************************

  UART寄存器
  
***********************************************************************/
#define SD_UART0_BASE_OFFSET    0x01D00000    // 串口0寄存器集合的起始地址
#define SD_UART1_BASE_OFFSET    0x01d04000    // 串口1寄存器集合的起始地址


// 串口各寄存器相对起始地址的偏移
#define SD_ULCON_OFFSET     0x00    /* UART 1/2 Line Control Reg       */
#define SD_UCON_OFFSET      0x04    /* UART 1/2 Channel Control Reg    */
#define SD_UFCON_OFFSET     0x08    /* UART 1/2 FIFO Control Reg       */
#define SD_UMCON_OFFSET     0x0c    /* UART 1/2 Modem Control Reg      */ 
#define SD_UTRSTAT_OFFSET   0x10    /* UART 1/2 Channel Status Reg     */
#define SD_UERSTAT_OFFSET   0x14    /* UART 1/2 RX Error Status Reg    */
#define SD_UFSTAT_OFFSET    0x18    /* UART 1/2 FIFO Status Reg        */
#define SD_UMSTAT_OFFSET    0x1c    /* UART 1/2 Modem Status Reg       */
#define SD_UTXH_OFFSET     0x20    /* Little Endian - Data in Lower byte */
#define SD_URXH_OFFSET     0x24    /* Little Endian - Data in Lower byte */
#define SD_UBRDIV_OFFSET   0x28    /* UART Baud Rate Divisor register  */

// 串口寄存器的一些值定义
// 寄存器ULCONx的一些设置
#define SD_ULCON_RESERVED        (uchar)0x80
#define SD_PARITY_NONE           (uchar)0x00    /* 0xx=No parity            */  
#define SD_PARITY_ODD            (uchar)0x20    /* 100=Odd parity           */
#define SD_PARITY_EVEN           (uchar)0x28    /* 101=Even parity        	*/
#define SD_PARITY_ONE            (uchar)0x30    /* 110=Force 1           	*/
#define SD_PARITY_ZERO           (uchar)0x38    /* 111=Force 0           	*/
#define SD_STOP_BITS_1           (uchar)0x00    /* Bit 2=0 1 Stop Bit       */
#define SD_STOP_BITS_2           (uchar)0x04    /* Bit 2=1 2 Stop Bits      */
#define SD_DATA_BITS_5           (uchar)0x00
#define SD_DATA_BITS_6           (uchar)0x01
#define SD_DATA_BITS_7           (uchar)0x02
#define SD_DATA_BITS_8           (uchar)0x03
#define SD_MODE_NORMAL           (uchar)0x00     // 正常模式
#define SD_MODE_IRDA             (uchar)0x40     // 红外模式


// UCONx的一些设置
#define SD_UCON_TX_RX_PULSE         (ushort)0x000   // Tx, Rx以脉冲方式触发
#define SD_UCON_TX_LEVEL            (ushort)0x200   // Tx以电平方式触发
#define SD_UCON_RX_LEVEL            (ushort)0x100   // Rx以电平方式触发
#define SD_UCON_TIMEOUT             (ushort)0x080    /* 1=Enable FIFO Empty IRQ  */
#define SD_UCON_RX_IRQ              (ushort)0x040    /* 1=Enable Rx IRQ          */
#define SD_UCON_LOOPBACK            (ushort)0x020    /* 1=Enable Loopback Mode   */
#define SD_UCON_TX_BREAK            (ushort)0x010    /* 1=Send Break signal      */

#define SD_UCON_TX_MODE_MASK        (ushort)0x00C    /* 00=Disabled              */
#define SD_UCON_TX_MODE_IRQ         (ushort)0x004    /* 01=IRQ or Polled Mode    */
/* 10=BDMA0 (Buffered DMA0) */
/* 11=BDMA0 (Buffered DMA1) */

#define SD_UCON_RX_MODE_MASK        (ushort)0x003    /* 00=Disabled              */
#define SD_UCON_RX_MODE_IRQ         (ushort)0x001    /* 01=IRQ or Polled Mode    */
/* 10=BDMA0 (Buffered DMA0) */
/* 11=BDMA0 (Buffered DMA1) */

#define SD_UCON_DISABLE             (ushort)0x000    /* 00=Disable All Functions */


// 寄存器UFCONx的一些设置
#define SD_UFCON_DISABLE            0x00    /* 00=Disable All Functions */ 
#define SD_UFCON_TX_FIFO_TRIG       0xC0    /* 00=IRQ on Tx FIFO Empty  */  
/* 01=IRQ when Tx FIFO = 4  */  
/* 10=IRQ when Tx FIFO = 8  */  
/* 01=IRQ when Tx FIFO = 12 */  
#define SD_UFCON_TX_FIFO_TRIG_0     0x00    /* 00=Empty                   */
#define SD_UFCON_TX_FIFO_TRIG_4     0x40    /* 01=4-byte                  */
#define SD_UFCON_TX_FIFO_TRIG_8     0x80    /* 10=8-byte                  */
#define SD_UFCON_TX_FIFO_TRIG_12    0xC0    /* 11=12-byte                 */

#define SD_UFCON_RX_FIFO_TRIG       0x30    /* 00=IRQ when Rx FIFO = 4  */  
/* 01=IRQ when Rx FIFO = 8  */  
/* 10=IRQ when Rx FIFO = 12 */  
/* 01=IRQ when Rx FIFO = 16 */  
#define SD_UFCON_RX_FIFO_TRIG_0     0x00    /* 00=Empty                   */
#define SD_UFCON_RX_FIFO_TRIG_4     0x10    /* 01=4-byte                  */
#define SD_UFCON_RX_FIFO_TRIG_8     0x20    /* 10=8-byte                  */
#define SD_UFCON_RX_FIFO_TRIG_12    0x30    /* 11=12-byte                 */

#define SD_UFCON_RESERVED           0x08    /* Bit 3 is Reserved          */  
#define SD_UFCON_TX_FIFO_RESET      0x04    /* 0=Normal 1=Tx FIFO reset   */
#define SD_UFCON_RX_FIFO_RESET      0x02    /* 0=Normal 1=Rx FIFO reset   */
#define SD_UFCON_FIFO_ENABLE        0x01    /* 1=FIFO (Tx & Rx) Enable    */
#define SD_UFCON_FIFO_DISABLE       0x00    /* 00=Disable All Functions   */


// 寄存器UMCONx的一些设置
#define SD_UMCON_AFC                 0x10    /* Auto Flow Control Enable */
#define SD_UMCON_RTS                 0x01    /* 'L'level(Activate nRTS)  */
#define SD_UMCON_DISABLE			 0x00	 /* Disable all functions    */

// 寄存器 UTRSTATx的一些设置
#define SD_UTRSTAT_TSH_EMPTY         0x04    /* 1=Tx Holding & Shift Reg **
** Both Empty               */
#define SD_UTRSTAT_TX_EMPTY          0x02    /* 1=Tx FIFO or Buffer NOT  **
** Empty                    */
#define SD_UTRSTAT_RX_RDY            0x01    /* 1=Rx Data Ready          */

// 寄存器UERSTATx的一些错误值
#define SD_UERSTAT_BREAK             0x08    /* 1=Break receive          */
#define SD_UERSTAT_FRAME             0x04    /* 1=Frame Error            */
#define SD_UERSTAT_PARITY            0x02    /* 1=Parity Error           */
#define SD_UERSTAT_OVERRUN           0x01    /* 1=Overrun Error          */

// 寄存器UFSTATx的一些状态值
#define SD_UFSTAT_RESERVED           0xFC00   /* Bits 15-->10 Reserved    */  
#define SD_UFSTAT_TX_FIFO_FULL       0x0200   /* Bit 9 =1 =Tx FIFO Full   */
#define SD_UFSTAT_RX_FIFO_FULL       0x0100   /* Bit 8 =1 =Tx FIFO Full   */
#define SD_UFSTAT_TX_FIFO_CNT        0x00F0   /* Number bytes in Tx FIFO  */
#define SD_UFSTAT_RX_FIFO_CNT        0x000F   /* Number bytes in Rx FIFO  */  
#define SD_UFSTAT_RX_RDY             0x00    /* 1=Rx Data Ready          */

// 寄存器UMSTATx的一些状态值
#define SD_UMSTAT_Delta_CTS          0x04    /* Has changed               */
#define SD_UMSTAT_CTS                0x01    /* CTS signal is activated   */
/* (nCTS pin is low)         */

// UART中断向量号
#define SD_UART0_TX_VECTOR          3 
#define SD_UART1_TX_VECTOR          2 

#define SD_UART0_RX_VECTOR          7 
#define SD_UART1_RX_VECTOR          6 



#define EM_MODEM_ERROR      EM_ERROR
#define EM_MODEM_SUCCESS    EM_SUCCESS

#define EM_MODEM_MODE_ASYS  0
#define EM_MODEM_MODE_SDLC  1
#define EM_MODEM_MODE_PPP   2

#define EM_MODEM_CX         1
#define EM_MODEM_SI         2
#define EM_MODEM_UNKNOWN    0

#define EM_ONLINE_AT        1
#define EM_ONLINE_DIALING   2
#define EM_ONLINE_CONNECTED 3
#define EM_ONLINE_DATA      4
#define EM_ONLINE_OFFLINE   5

#define EM_DIALERR_NONE         0
#define EM_DIALERR_NOCARRIER    1
#define EM_DIALERR_NOANSWER     2
#define EM_DIALERR_NODIALTONE   3
#define EM_DIALERR_BUSY         4
#define EM_DIALERR_TIMEOUT      5
#define EM_DIALERR_ELSE         6

/*数据传输状态宏定义*/
#define EM_HDLC_TRANSMIT_NODATA			    0	/*无数据包*/
#define EM_HDLC_TRANSMIT_DATA			    1	/*有数据包,未发送*/
#define EM_HDLC_TRANSMIT_DATA_NOACK			2	/*有数据包,已发送,未应答*/

#define EM_TIME_TICK_IN1S   100
#define RING_BIT	0x10
#define DCD_BIT		0x20

#define DEV_NOTHAND 0x00
#define DEV_HAND    0x01

#define MODEM_ICON_X	24
#define MODEM_ICON_Y	0
#define ONLINE_ICON_X   64
#define ONLINE_ICON_Y   0

#define SLEEP_STATE_NO_NEED					0

⌨️ 快捷键说明

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