标题：数据传送
3.3并行传输与串行传输
①并行传输是构成字符的二进制代码在并行信道上同时传输的方式。例如，8单位代码字符要用8条信道并行同时传输，一次传一个字符，收、发双方不存在同步问题，速度快，但信道多、投资大，数据传输中很少采用。②串行传输是构成二进制代码在一条信道上以位（码 元）为单位，按时间顺序逐位传输的方式。按位发送，逐位接收，同时还要确认字符，所以要采取同步措施。速度虽慢，但只需一条传输信道，投资小，易于实现，是数据传输采用的主要传输方式。
3.4异步传输和同步传输
①异步传输是字符同步传输的方式，又称起止式同步。当发送一个字符代码时，字符前面要加一个“起”信号，长度为1个码元宽，极性为“0”，即空号极性；而在发完一个字符后面加一个“止”信号，长度为1，1.5（国际2号代码时用）或2个码元宽，极性为“1”，即传号极性。接收端通过检测起、止信号，即可区分出所传输的字符。字符可以连续发送，也可单独发送，不发送字符时，连续发送止信号。每一个字符起始时刻可以是任意的，一个字符内码元长度是相等的，接收端通过止信号到起信号的跳变（“1” “0”） 来检测一个新字符的开始。该方式简单，收、发双方时钟信号不需要精确同步。缺点是增加起、止信号，效率低，使用于低速数据传输中。②同步传输是位（码元）同步传输方式。该方式必须在收、发双方建立精确的位定时信号，以便正确区分每位数据信号。在传输中，数据要分成组（或称帧），一帧含多个字符代码或多个独立码元。在发送数据前，在每帧开始必须加上规定的帧同步码元序列，接收端检测出该序列标志后，确定帧的开始，建立双方同步。接收端DCE从接收序列中提取位定时信号，从而达到位（码元）同步。同步传输不加起、止信号，传输效率高，使用于2 400 bit/s以上数据传输，但技术比较复杂。
3.5单工、半双工和全双工传输
单工传输指数据只能按单一方向发送和接收；半双工传输指数据可以在两个方向传输但不能同时进行，即交替收、发；全双工传输指数据可以在两个方向同时传输，即同时收和发。一般四线线路为全双工数据传输，二线线路可实现全双工数据传输。
3.6无线数据传送业务 
无线数据传送业务是指前述基础电信业务条目中未包括的、以无线方式提供的端到端数据传送业务，该业务可提供漫游服务，一般为区域性。 
提供该类业务的系统包括蜂窝数据分组数据(CDPD) 、 PLANET 、 NEXNET 、 Mobitex 等系统。双向寻呼属无线数据传送业务的一种应用。 
无线数据传送业务经营者必须自己组建无线数据传送网，无国内通信设施服务业务经营权的经营者不得建设国内传输网络设施，必须租用具有相应经营权运营商的传输设施组建业务网络。
数据传送速率 
数据传送速率是指MO磁光盘机与主机之间传输数据的速度，单位为MB/s。数据传送速率是衡量MO磁光盘机性能的重要参数。越高的数据传送速率意味着该MO磁光盘机的性能也就越高。数据传送速率又可分为脉冲传输率和持续传输率，其中，持续传输率才真正反映了该MO磁光盘机的实际性能。目前主流产品的数据传送速率在4MB/s-10MB/s之间。
3.7驱动和应用程序的开发
基于μCLinux操作系统的硬件驱动和应用程序的开发是在交叉编译环境中进行的,首先在PC机上开发，然后移植到目标机上进行调试并最终固化到目标机上。所开发的硬件驱动有以太网卡控制器驱动、LCD驱动、HPI驱动等驱动程序。系统软件结构如图4所示.
在μClinux操作系统上运行三个任务：读取压缩数据、通过以太网发送数据、接收和执行来自远端PC机的命令。其中读取DSP压缩数据任务对实时性有要求，它通过中断处理程序来实现，而其他的两个任务则通过用户进程来实现。以太网发送数据的任务和读取压缩数据的任务共享一个缓冲区，通过ioctl函数在其间传递缓冲区双向链表的地址。所以需要为数据处理模块上的通信接口HPI注册一个驱动程序，注册驱动程序的函数是：
result=register_chrdev(HPI_MAJOR,"hpi",&hpi_fops)
驱动程序的主要结构如下：
struct file_operations hpi_fops=
{
owner: THIS MODULE,
open: hpi_open,
read: hpi_read,
write: hpi_write,
ioctl: hpi_ioctl,
mmap:hpi_mmap,
release:hpi_release,
};
HPI驱动程序编写完成后，将驱动程序源代码置于../linux-2.4.x/driver/char目录下，同时修改同级目录下的Makefile，在../linux-2.4.x/driver/char/Makefile中加入Obj_y +=hpi.o
同时，为了能够在?滋Clinux启动时自动初始化此字符设备，还需要修改 ../linux-2.4.x/driver/char/men.c文件，在其中加入：
(1)新添加的字符驱动程序初始化函数声明：extern void  hpi_init(void);
(2)在字符设备统一初始化函数int _init chr_dev_init(void)中调用新设备的初始化函数，需要在int _init chr_dev_init(void)中加入语句：hpi_init();
在函数int _init chr_dev_init(void)中，字符设备的初始化函数将被统一调用，并完成字符驱动file_operations数据结构的注册，初始化之后就可以使用HPI字符设备了。
本文所设计数据传送总线变换器，不仅解决了由于传输距离远而引起的信号畸变问题，而且满足了信息传递的实时性要求，同时具有网关功能和嵌入式Web功能，能确保系统安全接入Internet。
四、数据传送程序
orihi equ   10H ;源高8位地址
ORILO EQU   00H ;源8低位地址
TARHI EQU   20H   ;目的高8位地址
TARLO EQU   00H   ;目的低8位地址
CONHI EQU   01H     ;字节数高8位
CONLO EQU   0FFH     ;字节数地8位
ORG 0000H
LJMP MAIN
MAIN:
setb rs0
setb rs1
MOV R2, #ORIHI
MOV R3, #ORILO
MOV R4, #TARHI
MOV R5, #TARLO
MOV R6, #CONHI
MOV R7, #CONLO
MOV DPH, R2;将源的高位地址放入DPTR高位
MOV DPL, R3;将源的低位地址放入DPTR低位
inc auxr1;转换成目的指针
MOV DPH,R4;将目的的高位地址放入DPTR高位
MOV DPL,R5;将目的的低位地址放入DPTR低位
inc auxr1;转换回源指针
五、程序清单
ORG              0000H
MOV             R2,         #10H；初始化程序控制变量
MOV             30H,           #00H
MOV             R0,         #30H
MOV             A,           #00H
LOOP1:   MOV             @R0,      A
INC       R0
INC        A
DJNZ      R2,         LOOP1；循环是否结束是往下继续，否则循环
MOV             R2,         #10H；初始化循环控制变量
MOV             R0,         #30H；取地址30H
MOV             40H,           #00H
MOV             R1,         #40H；取地址40H
LOOP2:   MOV             A,           @R0
MOV             @R1,      A；数据传送
INC        R1
INC        R0
DJNZ      R2,         LOOP2；循环是否结束是往下继续，否则循环
MOV             R2,         #10H；初始化循环控制量
MOV             R0,         #40H
MOV             DPTR,    #4800H；取外部地址4800H指针变量
LOOP3:   MOV             A,           @R0
MOVX    @DPTR,A；数据传送
INC        R0
INC        DPTR；修改指针变量
DJNZ      R2,         LOOP3；循环是否结束是往下继续，否则循环
MOV             R2,         #10H；初始化循环控制量
MOV             R1,         #00H
MOV             DPTR,    #4800H；取外部地址4800H给指针变量
LOOP4:   MOVX        A,           @DPTR
PUSH      DPH；指针变量高位压人堆栈
PUSH      DPL；指针变量低位压人堆栈
MOV      DPH,      #58H；取外部5800H高八位地址送给指针变量高八位          
MOV      DPL,       R1；修改指针变量低八位
MOVX    @DPTR,A；数据传送
POP    DPL；弹出指针变量低位
POP        DPH；弹出指针变量高位
INC        DPTR；修改指针变量
INC        R1
DJNZ      R2,         LOOP4；循环是否结束是往下继续，否则循环
MOV      R2,         #10H；初始化循环控制量
MOV      DPTR,    #5800H；取外部地址5800H给指针变量
MOV      R0,         #50H；去片内地址50H
LOOP5:   MOVX    A,           @DPTR
MOV      @R0,      A;数据传送
INC        R0；
INC        DPTR；
DJNZ      R2,         LOOP5；循环是否结束是往下继续，否则循环
END
六、硬件设计
6.1ARM与DSP的接口电路