CN101183948B - 一种以太网串口驱动单元及窄带拨号时数据流的传输方法 - Google Patents

一种以太网串口驱动单元及窄带拨号时数据流的传输方法 Download PDF

Info

Publication number
CN101183948B
CN101183948B CN2007101952774A CN200710195277A CN101183948B CN 101183948 B CN101183948 B CN 101183948B CN 2007101952774 A CN2007101952774 A CN 2007101952774A CN 200710195277 A CN200710195277 A CN 200710195277A CN 101183948 B CN101183948 B CN 101183948B
Authority
CN
China
Prior art keywords
ethernet
serial port
data stream
data
buffer area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2007101952774A
Other languages
English (en)
Other versions
CN101183948A (zh
Inventor
范志刚
李云涛
卢涛
任安涛
张明昊
陈浩乾
胡全胜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN2007101952774A priority Critical patent/CN101183948B/zh
Publication of CN101183948A publication Critical patent/CN101183948A/zh
Application granted granted Critical
Publication of CN101183948B publication Critical patent/CN101183948B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种以太网串口驱动单元及窄带拨号时数据流的传输方法;以太网串口驱动单元包括以太网MAC控制器、以太网PHY芯片,用于根据所述以太网MAC控制器下发的指示,从以太网MAC控制器的数据缓冲区取走以太网数据包并进行发送;还用于从以太网中接收数据流并送入到以太网MAC控制器的数据缓冲区中;及串口控制模块,用于接收从用户层数据通信接口送入的窄带数据流,将其复制到以太网MAC控制器的数据缓冲区中并封装为以太网数据包,然后通过以太网MAC控制器指示以太网PHY芯片模块将其发送;还用于从以太网PHY芯片模块接收的数据流中提取以太网串口窄带数据流,并将其拆包得到窄带数据流,然后将其送出给用户。

Description

一种以太网串口驱动单元及窄带拨号时数据流的传输方法 
技术领域
本发明涉及无线通信领域数据终端设备部分,尤其涉及一种以太网串口驱动单元及窄带拨号时数据流的传输方法。 
背景技术
在基于嵌入式移动通信终端窄带拨号的过程中,大部分是用到ttyX(虚拟终端设备文件),比如ttyUSB0,ttyS0,来进行拨号。而使用何种ttyX取决于采用何种硬件来控制收发数据流,现有的传输模式都是将窄带数据流送入串口,经串口流入USB(通用串行总线)host controller(主控制器)或者UART(通用异步收发器)等硬件实体;如目前主要流行用USB hostcontroller(主控制器)来收发数据,而使用这种USB主控制器来进行窄带拨号过程中的数据传输就必须要为此控制器写一层USB串口驱动(ttyUSB0),该驱动主要的工作就是控制该硬件实体的数据收发,流量控制等。再如在USB主控制器还没有问世之前,窄带拨号主要通过UART来进行数据的传输,同样也对应一层串口驱动(ttyS0)来控制该硬件实体的数据收发,流量控制等。 
目前数据收发通道的传输速率大大提高,而采用现有的串口驱动,如ttyS0/ttyUSB0配合UART/USB来进行窄带数据传输时,不能完好的体现数据收发通道的速率。 
发明内容
本发明要解决的技术问题是提供一种以太网串口驱动单元及窄带拨号时数据流的传输方法,能够将窄带拨号时的数据传输速率大大提升更接近其理论值。
为了解决上述技术问题,本发明提供了一种以太网串口驱动单元,包括以太网物理层PHY芯片模块,以太网介质访问控制MAC控制器;还包括:串口控制模块; 
所述以太网PHY芯片模块用于根据所述以太网MAC控制器下发的指示,从以太网MAC控制器的数据缓冲区取走以太网数据包并进行发送;还用于从以太网中接收数据流并送入到以太网MAC控制器的数据缓冲区中; 
所述串口控制模块用于接收从用户层数据通信接口送入的窄带数据流,将所述窄带数据流复制到以太网MAC控制器的数据缓冲区中并封装为以太网数据包,然后通过以太网MAC控制器指示以太网PHY芯片模块将所述太网数据包发送;还用于从以太网PHY芯片模块接收的数据流中提取以太网串口窄带数据流,并将所述以太网串口窄带数据流拆包得到窄带数据流,然后将所述窄带数据流送出给用户;其中, 
串口控制模块将窄带数据流复制到以太网MAC控制器的数据缓冲区中并封装为以太网数据包是指: 
所述串口控制模块将所述窄带数据流进行截取并加上串口包头封装成串口帧,并将所述串口帧从用户态缓冲区复制到核心态缓冲区,然后将核心态缓冲区中的串口帧复制到以太网MAC控制器的数据缓冲区中,并加上以太网包头封装为以太网数据包。 
进一步的,串口控制模块通过以太网MAC控制器指示以太网PHY芯片模块将窄带数据流发送是指: 
串口控制模块把以太网MAC控制器的传输模式设为直接内存访问DMA传输方式,让CPU停止处理其他任务的处理,并判断该所述以太网PHY芯片模块是否正在进行数据传输,如果没在进行传输则通过以太网MAC控制器指示以太网PHY芯片模块开始传输;如果正在进行传输则等待。 
进一步的,所述以太网MAC控制器包括MAC驱动子模块和寄存器; 
所述MAC驱动子模块用于对寄存器操作以及和以太网PHY芯片模块之间通信接口进行定义; 
所述寄存器至少包括:用于指示传输模式的第一寄存器和用于指示传输 状态的第二寄存器; 
所述串口控制模块把以太网MAC控制器的传输模式设为DMA传输方式是指:串口控制模块通过MAC驱动子模块将以太网MAC控制器中的第一寄存器置为表示“DMA传输”的值; 
所述串口控制模块通过以太网MAC控制器通知以太网PHY芯片模块开始传输是指:串口控制模块通过MAC驱动子模块将以太网MAC控制器中的第二寄存器置为表示“开始传输”的值。 
进一步的,所述以太网PHY芯片模块根据所述以太网MAC控制器下发的指示,从以太网MAC控制器的数据缓冲区取走以太网数据包并进行发送是指:以太网PHY芯片模块监视以太网MAC控制器中用于指示传输状态的寄存器,发现所述寄存器被置为表示“开始传输”的值时,从以太网MAC控制器的数据缓冲区取走以太网数据包并进行发送。 
进一步的,所述串口控制模块包括串口控制MAC层子模块和串口驱动层子模块; 
串口控制模块从以太网PHY芯片模块接收的数据流中提取以太网串口窄带数据流,并将所述以太网串口窄带数据流拆包得到窄带数据流是指:串口控制MAC层子模块判断以太网PHY芯片模块所接收到的数据流为以太网串口窄带流还是IP数据流,如果是IP数据流则将所述IP数据流送入IP层协议栈处理单元;如果为以太网串口窄带流则去除以太网包头得到串口帧,并将串口帧从以太网MAC控制器的数据缓冲区复制到核心态缓冲区中;然后将核心态缓冲区中的串口帧送入串口驱动层子模块的数据写缓冲区,并通知串口驱动层子模块读取;串口驱动层子模块读取串口帧后去除串口包头,得到窄带数据流。 
进一步的,串口控制模块将窄带数据流送出给用户是指:串口控制模块将数据从设备文件送出给用户。 
本发明还提供了一种窄带拨号时数据流的发送方法,包括: 
A、将窄带数据流送入串口控制模块; 
B、串口控制模块将所述窄带数据流进行截取并加上串口包头封装成串口帧,并将所述串口帧从用户态缓冲区复制到核心态缓冲区,然后将核心态缓冲区中的串口帧复制到以太网MAC控制器的数据缓冲区中,并加上以太网包头封装成以太网数据包,然后指示以太网PHY芯片模块进行发送; 
C、以太网PHY芯片模块在收到发送数据的指示后,从以太网MAC控制器的数据缓冲区取走所述以太网数据包并进行发送。 
进一步的,所述步骤B具体包括: 
B1、串口控制模块将所述窄带数据流进行截取并加上串口包头封装成串口帧后,从用户态缓冲区复制到核心态缓冲区; 
B2、串口控制模块将核心态缓冲区中的串口帧复制到以太网MAC控制器的数据缓冲区中,并加入以太网包头封装为以太网数据包; 
B3、串口控制模块将以太网MAC控制器的传输模式设为DMA传输方式,让CPU停止处理其他任务的处理,并指示以太网PHY芯片模块进行发送。 
进一步的,所述步骤B3中,串口控制模块指示以太网PHY芯片模块进行发送是指: 
串口控制模块将以太网MAC控制器中用于指示传输状态的寄存器置为表示“开始传输”的值。 
进一步的,所述步骤C具体为: 
以太网PHY芯片模块监视以太网MAC控制器中用于指示传输状态的寄存器,发现所述寄存器被置为表示“开始传输”的值后,从以太网MAC控制器的数据缓冲区取走以太网数据包并通过以太网向对端设备进行发送。 
进一步的,所述步骤A具体为: 
用户以访问设备文件的形式将窄带数据流送入串口控制模块。 
本发明还提供了一种窄带拨号时数据流的接收方法,包括: 
a、以太网PHY芯片模块从对端设备接收到的数据流送入到以太网MAC 控制器的数据缓冲区中; 
b、串口控制模块将接收到的数据流中的以太网串口窄带数据流提取出来,并将所述以太网串口窄带数据流拆包得到窄带数据流;其中, 
b1、串口控制模块判断所述接收到的数据流为以太网串口窄带数据流还是IP数据流,如果为以太网串口窄带数据流则去除以太网包头得到串口帧,并将串口帧从以太网MAC控制器的数据缓冲区复制到核心态缓冲区; 
b2、串口控制模块将核心态缓冲区中的串口帧复制到用户态缓冲区,并去除串口包头得到窄带数据流; 
c、串口控制模块将所述窄带数据流送出给用户。 
进一步的,所述步骤c具体包括: 
串口控制模块将窄带数据流从设备文件送出给用户。 
本发明的技术方案提供了一种全新的窄带数据流的传输模式,采用基于以太网串口驱动(ttyETH0)的方法来控制以太网PHY(物理层)的数据传输,能够成功的适配串口和以太网收发数据,并且提高了硬件实体在窄带拨号时的数据流传输速率。 
附图说明
图1是本发明的以太网串口驱动单元的具体实施框图; 
图2是本发明中窄带数据流经过不同步骤后的数据包格式示意图; 
图3是本发明应用实例中窄带数据流的发送流程图; 
图4是本发明应用实例中窄带数据流的接收流程图。 
具体实施方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。 
本发明提供了一种以太网串口驱动单元,可以放置在移动终端内,如图1所示,包括:以太网PHY芯片模块,以太网MAC(媒体接入控制)控制器模块及串口控制模块。 
所述以太网PHY芯片模块是一个数据传输模块,是一个物理数据收发通道;其根据所述以太网MAC控制器下发的指示进行数据传输。 
所述以太网MAC控制器是一个控制模块,用于控制以太网PHY芯片的数据传输,包括若干寄存器和一MAC驱动子模块,该MAC驱动子模块主要是对寄存器操作以及和以太网PHY芯片之间通信接口进行定义。 
所述寄存器至少包括:用于指示传输模式的第一寄存器和用于指示传输状态的第二寄存器。 
串口控制模块是该技术的核心部分,主要用于处理串口层和MAC控制器之间的关系;所述串口控制模块处于操作系统的核心态,对用户层而言,主要通过设备文件的形式来对所述其进行访问;对系统而言,所述串口控制模块在核心态对以太网MAC控制器进行控制,同时告之系统该MAC控制器数据传输是DMA通道方式,进而让CPU停止处理其他任务的处理,从而可以通过对以太网MAC控制器进行控制进而来控制以太网PHY芯片模块的数据收发。更具体的说串口控制模块可以分为两个部分来描述:串口驱动层子模块和串口控制MAC层子模块,串口驱动层子模块是linux内核中一块非常成熟的技术,可以直接使用,串口控制MAC层子模块可以认为是MAC控制器和串口驱动层中间的适配层,这层适配层主要是对MAC控制器操作。 
串口控制模块用于接收从用户层数据通信接口送入的窄带数据流,将其复制到以太网MAC控制器的数据缓冲区中并封装为以太网数据包,然后通过以太网MAC控制器指示以太网PHY芯片模块将其发送;还用于从以太网PHY芯片模块接收的数据流中提取以太网串口窄带数据流,并将其拆包得到窄带数据流,然后将其送出给用户。 
串口控制模块用于接收从用户层数据通信接口送入的窄带数据流是指:串口驱动层子模块接收用户以访问设备文件(/dev/ttyETH0)的形式所送入的窄带数据流;可以但不限于将数据流送入本串口驱动层子模块的数据读缓冲区中。 
串口控制模块将窄带数据流复制到以太网MAC控制器的数据缓冲区中并封装为以太网数据包具体是指:串口驱动层子模块将所述窄带数据流进行截取并加上串口包头封装成串口帧;串口控制MAC层子模块将所述串口帧从用户态缓冲区复制到核心态缓冲区(也可称为公用缓冲区),然后将核心态缓冲区中的串口帧复制到以太网MAC控制器的数据缓冲区中,并加入以太网包头封装为以太网数据包。 
串口控制模块通过以太网MAC控制器指示以太网PHY芯片模块将窄带数据流发送具体是指:串口控制MAC层子模块把以太网MAC控制器的传输模式设为DMA(直接内存访问)传输方式,让CPU停止处理其他任务的处理,并判断该所述以太网PHY芯片模块是否正在进行数据传输,如果没在进行传输则通过以太网MAC控制器指示以太网PHY芯片模块开始传输;如果正在进行传输则等待。 
串口控制MAC层子模块把以太网MAC控制器的传输模式设为DMA(直接内存访问)传输方式是指:串口控制MAC层子模块通过所述MAC驱动子模块将以太网MAC控制器中的第一寄存器置为表示“DMA传输”的值。 
串口控制MAC层子模块指示以太网PHY芯片模块进行发送是指:串口控制MAC层子模块通过所述MAC驱动子模块将以太网MAC控制器中的第二寄存器置为表示“开始传输”的值。 
相应的,所述以太网PHY芯片模块用于监视以太网MAC控制器中的第二寄存器,发现其被置为表示“开始传输”的值时,从以太网MAC控制器的数据缓冲区取走以太网数据包并通过以太网向对端设备进行发送;还用于从以太网中接收数据流并送入到以太网MAC控制器的数据缓冲区中。 
串口控制模块从以太网PHY芯片模块接收的数据流中提取以太网串口窄带数据流,并将其拆包得到窄带数据流具体是指:串口控制MAC层子模块判断以太网PHY芯片模块所接收到的数据流为以太网串口窄带流还是IP数据流,如果是IP数据流则将其送入IP层协议栈处理单元;如果为以太网串口窄带流则去除以太网包头得到串口帧,并将串口帧从以太网MAC控制器的数据缓冲区复制到核心态缓冲区中;然后将核心态缓冲区中的串口帧送 入串口驱动层子模块的数据写缓冲区,并通知串口驱动层子模块读取;串口驱动层子模块读取串口帧后去除串口包头,得到窄带数据流。 
串口控制模块将窄带数据流送出给用户是指:串口驱动层子模块将数据从用户层数据通信接口,也就是从设备文件送出给用户。 
本发明还提供了一种窄带拨号时数据流的传输方法,分为发送方法和接收方法两个部分。 
窄带拨号时数据流的发送方法包括如下步骤: 
A、用户将窄带数据流送入串口控制模块。 
本步骤中,用户通过用户层数据通信接口将窄带数据流送入串口控制模块,如果用户层数据通信接口为设备文件形式,则用户以访问设备文件(/dev/ttyETH0)的形式将窄带数据流送入串口控制模块;可以但不限于送入串口控制模块所包含的串口驱动层子模块的数据读缓冲区。 
B、串口控制模块将所述窄带数据流进行截取,复制到以太网MAC(介质访问控制层)控制器的数据缓冲区中并封装成以太网数据包,然后指示以太网PHY(物理层)芯片模块发送。 
本步骤具体可以包括: 
B1、串口控制模块将所述窄带数据流进行截取并加上串口包头封装成串口帧后,从用户态缓冲区复制到核心态缓冲区(也可称为公用缓冲区)。 
所述串口包头可以同现有技术中一致。 
本步骤可以具体为:串口驱动层子模块将其数据读缓冲区中的窄带数据流进行截取并加上串口包头,封装成串口帧;串口控制模块所包含的串口控制MAC层子模块将所述串口帧从用户态缓冲区复制到核心态缓冲区。 
B2、串口控制模块将核心态缓冲区中的串口帧复制到以太网MAC控制器的数据缓冲区中,并加入以太网包头封装为以太网数据包。 
所述以太网包头可以同现有技术中一致。 
本步骤可以具体为:串口控制MAC层子模块将核心态缓冲区中的串口帧以调用函数接口的形式送入以太网MAC控制器的数据缓冲区中,并加入以太网包头封装为以太网数据包。 
B3、串口控制模块将以太网MAC控制器的传输模式设为DMA(直接内存访问)传输方式,让CPU停止处理其他任务的处理,并指示以太网PHY芯片模块进行发送。 
本步骤中,将以太网MAC控制器的传输模式设为DMA(直接内存访问)传输方式,让CPU停止处理其他任务的处理是指:串口控制MAC层子模块将以太网MAC控制器中用于指示传输模式的寄存器置为表示“DMA传输”的值;并对DMA寄存器写入开始数据传输标志位,从而向CPU通知已经开始DMA数据传输,让CPU停止其他任务的处理。 
本步骤中,串口控制MAC层子模块先判断该所述以太网PHY芯片模块是否正在进行数据传输,如果没在进行传输则通过以太网MAC控制器指示以太网PHY芯片模块开始传输;如果正在进行传输则等待。 
本步骤中,串口控制模块指示以太网PHY芯片模块进行发送是指:串口控制模块将以太网MAC控制器中用于指示传输状态的寄存器置为表示“开始传输”的值。 
C、以太网PHY芯片模块在收到发送数据的指示后,从以太网MAC控制器的数据缓冲区取走所述以太网数据包并进行发送。 
本步骤具体可以包括:以太网PHY芯片模块监视以太网MAC控制器中用于指示传输状态的寄存器,发现其被置为表示“开始传输”的值后,从以太网MAC控制器的数据缓冲区取走以太网数据包并通过以太网向对端设备进行发送。 
窄带数据流经过上述不同步骤后的数据包格式如图2所示。 
窄带拨号时数据流的接收方法包括如下步骤: 
a、以太网PHY芯片模块从对端设备接收到的数据送入到以太网MAC控制器的数据缓冲区中。 
b、串口控制模块将接收到的数据流中的以太网串口窄带数据流提取出来,并将其拆包得到窄带数据流。 
本步骤具体包括: 
b1、判断所述接收到的数据流为以太网串口窄带数据流还是IP数据流,如果是IP数据流则送入IP层协议栈处理单元,按现有技术进行相应处理;如果为以太网串口窄带数据流则去除以太网包头得到串口帧,并将串口帧从以太网MAC控制器的数据缓冲区复制到核心态缓冲区中。 
本步骤可以由串口控制MAC层子模块完成。 
b2、将核心态缓冲区中的串口帧复制到用户态缓冲区,并去除串口包头得到窄带数据流。 
本步骤具体可以为:串口控制MAC层子模块将核心态缓冲区中的串口帧送入串口驱动层子模块的数据写缓冲区;送入后通知串口控制模块中包含的串口驱动层子模块读取该串口帧;串口驱动层读取串口帧后去除串口包头,得到窄带数据流。 
c、串口控制模块将所述窄带数据流从用户层数据通信接口送出给用户。 
本步骤具体可以为:串口控制模块中包含的串口驱动层子模块将窄带数据流从设备文件送出给用户。 
下面用本发明的一个应用实例进一步加以说明。 
在本应用实例中,假设通信两端都采用了本发明的技术方案。 
在发送端,如图3所示: 
101、窄带数据流进入用户层数据通信接口。 
本应用实例中,用户层数据通信接口以设备文件的形式提供,因此本步骤也可描述为:用户将窄带数据流向设备文件中写入。 
102、窄带数据流进入串口驱动层子模块的数据读缓冲区中。 
103、串口驱动层子模块将所述窄带数据流加上串口包头封装为串口帧,然后串口控制MAC层子模块将所述串口帧从用户态缓冲区复制到核心态缓冲区。 
到这个步骤以后,就可以在核心层得到该窄带数据流。 
104、串口控制MAC层子模块在核心层把所述串口帧加入以太网包头封装为以太网数据包后以调用函数接口的形式送入以太网MAC控制器的数据缓冲区。 
105、串口控制MAC层子模块将以太网MAC控制器传输模式置为DMA模式。 
本步骤即:串口控制MAC层子模块将以太网MAC控制器中的的第一寄存器置为表示“DMA传输”的值 
106:串口控制MAC层子模块将以太网MAC控制器的传输状态置为开始传输。 
本步骤即:串口控制MAC层子模块将以太网MAC控制器中的的第二寄存器置为表示“开始传输”的值。 
107、串口控制MAC层子模块向DMA寄存器写入开始数据传输标志位。 
108:串口控制MAC层子模块向CPU通知已经开始DMA数据传输,让CPU停止其他任务的处理。 
109:以太网PHY芯片模块进行发送。 
本步骤具体为:以太网PHY芯片模块发现以太网MAC控制器中的的第二寄存器被置为表示“开始传输”的值时,从以太网MAC控制器的数据缓冲区中得到所述以太网数据包并通过以太网发送到对端设备。 
通过以上步骤,该窄带数据流从设备文件到达了对端设备。 
在接收端,如图4所示: 
110、对端设备的以太网PHY芯片模块接收到数据流。 
111、以太网PHY芯片模块将接收到的数据流以自定义组播方式送入到以太网MAC控制器的数据缓冲区中。 
112、串口控制MAC层子模块判断接收到的数据流是IP数据包还是以太网串口窄带数据流,如果是以太网串口窄带数据流则进行步骤113,如果是IP数据包则进行步骤114。 
步骤111中是以自定义组播方式将数据送到了以太网MAC控制器的数 据缓冲区中,因此可以根据自定义组播方式来判断出该回显数据流是IP数据包还是以太网串口窄带数据流。 
113、串口控制MAC层子模块将以太网MAC控制器的数据缓冲区中的以太网串口窄带数据流去除以太网包头得到串口帧,并复制到核心态缓冲区;进行115。 
114、将IP数据包送入IP层协议单元处理;按现有技术继续处理,本文中不再赘述。 
115、串口控制MAC层子模块将所述串口帧从核心态缓冲区复制到串口驱动层子模块的数据写缓冲区,并向串口驱动层子模块发送信号让其从写缓冲区中读走数据。 
116:串口驱动层子模块读取所述串口帧后去除串口包头得到窄带数据流,并将其从用户层数据通信接口,也就是从设备文件送出给用户。 
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。 

Claims (13)

1.一种以太网串口驱动单元,包括以太网物理层PHY芯片模块,以太网介质访问控制层MAC控制器;其特征在于,还包括:串口控制模块;
所述以太网PHY芯片模块用于根据所述以太网MAC控制器下发的指示,从以太网MAC控制器的数据缓冲区取走以太网数据包并进行发送;还用于从以太网中接收数据流并送入到以太网MAC控制器的数据缓冲区中;
所述串口控制模块用于接收从用户层数据通信接口送入的窄带数据流,将所述窄带数据流复制到以太网MAC控制器的数据缓冲区中并封装为以太网数据包,然后通过以太网MAC控制器指示以太网PHY芯片模块将所述以太网数据包发送;还用于从以太网PHY芯片模块接收的数据流中提取以太网串口窄带数据流,并将所述以太网串口窄带数据流拆包得到窄带数据流,然后将所述窄带数据流送出给用户;其中,
串口控制模块将窄带数据流复制到以太网MAC控制器的数据缓冲区中并封装为以太网数据包是指:所述串口控制模块将所述窄带数据流进行截取并加上串口包头封装成串口帧,并将所述串口帧从用户态缓冲区复制到核心态缓冲区,然后将核心态缓冲区中的串口帧复制到以太网MAC控制器的数据缓冲区中,并加上以太网包头封装为以太网数据包。
2.如权利要求1所述的以太网串口驱动单元,其特征在于,串口控制模块通过以太网MAC控制器指示以太网PHY芯片模块将窄带数据流发送是指:
串口控制模块把以太网MAC控制器的传输模式设为直接内存访问DMA传输方式,让CPU停止处理其他任务的处理,并判断该所述以太网PHY芯片模块是否正在进行数据传输,如果没在进行传输则通过以太网MAC控制器指示以太网PHY芯片模块开始传输;如果正在进行传输则等待。
3.如权利要求2所述的以太网串口驱动单元,其特征在于:
所述以太网MAC控制器包括MAC驱动子模块和寄存器;
所述MAC驱动子模块用于对寄存器操作以及和以太网PHY芯片模块 之间通信接口进行定义;
所述寄存器至少包括:用于指示传输模式的第一寄存器和用于指示传输状态的第二寄存器;
所述串口控制模块把以太网MAC控制器的传输模式设为DMA传输方式是指:串口控制模块通过MAC驱动子模块将以太网MAC控制器中的第一寄存器置为表示“DMA传输”的值;
所述串口控制模块通过以太网MAC控制器通知以太网PHY芯片模块开始传输是指:串口控制模块通过MAC驱动子模块将以太网MAC控制器中的第二寄存器置为表示“开始传输”的值。
4.如权利要求3所述的以太网串口驱动单元,其特征在于,所述以太网PHY芯片模块根据所述以太网MAC控制器下发的指示,从以太网MAC控制器的数据缓冲区取走以太网数据包并进行发送是指:以太网PHY芯片模块监视以太网MAC控制器中用于指示传输状态的寄存器,发现所述寄存器被置为表示“开始传输”的值时,从以太网MAC控制器的数据缓冲区取走以太网数据包并进行发送。
5.如权利要求1所述的以太网串口驱动单元,其特征在于:所述串口控制模块包括串口控制MAC层子模块和串口驱动层子模块;
串口控制模块从以太网PHY芯片模块接收的数据流中提取以太网串口窄带数据流,并将所述以太网串口窄带数据流拆包得到窄带数据流是指:串口控制MAC层子模块判断以太网PHY芯片模块所接收到的数据流为以太网串口窄带流还是IP数据流,如果是IP数据流则将所述IP数据流送入IP层协议栈处理单元;如果为以太网串口窄带流则去除以太网包头得到串口帧,并将串口帧从以太网MAC控制器的数据缓冲区复制到核心态缓冲区中;然后将核心态缓冲区中的串口帧送入串口驱动层子模块的数据写缓冲区,并通知串口驱动层子模块读取;串口驱动层子模块读取串口帧后去除串口包头,得到窄带数据流。
6.如权利要求1所述的以太网串口驱动单元,其特征在于,串口控制模块将窄带数据流送出给用户是指:串口控制模块将数据从设备文件送出 给用户。
7.一种窄带拨号时数据流的发送方法,其特征在于,包括:
A、将窄带数据流送入串口控制模块;
B、串口控制模块将所述窄带数据流进行截取并加上串口包头封装成串口帧,并将所述串口帧从用户态缓冲区复制到核心态缓冲区,然后将核心态缓冲区中的串口帧复制到以太网MAC控制器的数据缓冲区中,并加上以太网包头封装成以太网数据包,然后指示以太网PHY芯片模块进行发送;
C、以太网PHY芯片模块在收到发送数据的指示后,从以太网MAC控制器的数据缓冲区取走所述以太网数据包并进行发送。
8.如权利要求7所述的发送方法,其特征在于,所述步骤B具体包括:
B1、串口控制模块将所述窄带数据流进行截取并加上串口包头封装成串口帧后,从用户态缓冲区复制到核心态缓冲区;
B2、串口控制模块将核心态缓冲区中的串口帧复制到以太网MAC控制器的数据缓冲区中,并加入以太网包头封装为以太网数据包;
B3、串口控制模块将以太网MAC控制器的传输模式设为DMA传输方式,让CPU停止处理其他任务的处理,并指示以太网PHY芯片模块进行发送。
9.如权利要求8所述的发送方法,其特征在于,所述步骤B3中,串口控制模块指示以太网PHY芯片模块进行发送是指:
串口控制模块将以太网MAC控制器中用于指示传输状态的寄存器置为表示“开始传输”的值。
10.如权利要求9所述的发送方法,其特征在于,所述步骤C具体为:
以太网PHY芯片模块监视以太网MAC控制器中用于指示传输状态的寄存器,发现所述寄存器被置为表示“开始传输”的值后,从以太网MAC控制器的数据缓冲区取走以太网数据包并通过以太网向对端设备进行发送。 
11.如权利要求7到10中任一项所述的发送方法,其特征在于,所述步骤A具体为:
用户以访问设备文件的形式将窄带数据流送入串口控制模块。
12.一种窄带拨号时数据流的接收方法,其特征在于,包括:
a、以太网PHY芯片模块从对端设备接收到的数据流送入到以太网MAC控制器的数据缓冲区中;
b、串口控制模块将接收到的数据流中的以太网串口窄带数据流提取出来,并将所述以太网串口窄带数据流拆包得到窄带数据流;其中,
b1、串口控制模块判断所述接收到的数据流为以太网串口窄带数据流还是IP数据流,如果为以太网串口窄带数据流则去除以太网包头得到串口帧,并将串口帧从以太网MAC控制器的数据缓冲区复制到核心态缓冲区;
b2、串口控制模块将核心态缓冲区中的串口帧复制到用户态缓冲区,并去除串口包头得到窄带数据流;
c、串口控制模块将所述窄带数据流送出给用户。
13.如权利要求12所述的接收方法,其特征在于,所述步骤c具体包括:
串口控制模块将窄带数据流从设备文件送出给用户。 
CN2007101952774A 2007-12-05 2007-12-05 一种以太网串口驱动单元及窄带拨号时数据流的传输方法 Active CN101183948B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101952774A CN101183948B (zh) 2007-12-05 2007-12-05 一种以太网串口驱动单元及窄带拨号时数据流的传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101952774A CN101183948B (zh) 2007-12-05 2007-12-05 一种以太网串口驱动单元及窄带拨号时数据流的传输方法

Publications (2)

Publication Number Publication Date
CN101183948A CN101183948A (zh) 2008-05-21
CN101183948B true CN101183948B (zh) 2011-05-25

Family

ID=39449045

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101952774A Active CN101183948B (zh) 2007-12-05 2007-12-05 一种以太网串口驱动单元及窄带拨号时数据流的传输方法

Country Status (1)

Country Link
CN (1) CN101183948B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101848162B (zh) * 2010-06-02 2013-07-17 上海融亿信息技术有限公司 一种以太网数据发送装置及数据传输方法
CN103916336B (zh) * 2012-12-28 2017-05-17 北京中电华大电子设计有限责任公司 一种用fpga实现的以太网驱动器
US9766971B2 (en) * 2015-12-04 2017-09-19 Intel Corporation Physical layer device operation system and method
CN107800584A (zh) * 2016-09-07 2018-03-13 扬智科技股份有限公司 乙太网络物理层电路的自我测试方法与自我测试系统

Also Published As

Publication number Publication date
CN101183948A (zh) 2008-05-21

Similar Documents

Publication Publication Date Title
CN104408003B (zh) 增强的无线usb协议和集线器
KR101197749B1 (ko) 범용 직렬 버스(usb)의 플로우 제어
CN101882116A (zh) 音频传输的实现方法及移动终端
JP2009506682A (ja) ギガビット/10ギガビット・イーサネット(登録商標)・システムにおける明示的フロー制御
CN101183948B (zh) 一种以太网串口驱动单元及窄带拨号时数据流的传输方法
KR20080088885A (ko) 호스트 장치와 usb 장치간의 통신을 제어하는 장치,방법 및 시스템
CN115499505B (zh) Usb网卡和通信方法
AU2004221088A1 (en) Pre-empting low-priority traffic with high-priority traffic
JP2005044094A (ja) データ中継システム
CN107168710A (zh) 一种基于阻塞接收机制的嵌入式Linux串口驱动开发方法
JP2001094613A (ja) 通信制御装置、方法および記録媒体
US6006284A (en) Method and apparatus for driving a parallel part to provide multiple modes of communications between a host and a peripheral
EP1687922B1 (en) Backward-compatible parallel ddr bus for use in host-daughtercard interface
WO2012019376A1 (zh) 无线通信终端网络设备功能的实现方法及装置
CN100407706C (zh) 一种多媒体处理方法
US7428242B2 (en) Action list for a split media access and control layer communications system
US20090129355A1 (en) Apparatus of transmitting packets of wireless local network and method for using the same
JP2004246750A (ja) Usb通信方法
CN100464511C (zh) 一种以太网通信系统及方法
CN115622958B (zh) 一种zynq系统及虚拟mac实现方法
JPH01144833A (ja) データ送受信方式
KR101005397B1 (ko) 버스 스테이션 및 버스 통신 시스템
JP2004013429A (ja) データ制御方式及び記録装置
CN102655025A (zh) 一种双芯片方案下烧录基带芯片的系统与方法
WO2015051667A1 (zh) 一种基于数据卡的数据传输方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant