《课程设计方案CAN总线数据通信系统设计方案.docx》由会员分享,可在线阅读,更多相关《课程设计方案CAN总线数据通信系统设计方案.docx(28页珍藏版)》请在三一文库上搜索。
1、个人资料整理仅限学习使用CAN 总线数据通信系统的设计个人资料整理仅限学习使用摘要现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。CAN(ControllerArea Network>属于现场总线的范畴,是一种多主方式的串行通讯总线,数据通信实时性强。与其它现场总线比较而言,CAN 总线具有通信速率高、容易实现、可靠性高、性价比高等诸多特点。本系统要在单片机中实现CAN 总线的接口,通过 CAN 总线,实现两个模块之间的数据通讯。系统主要由四部分所构成:PC机、微控制器80C51
2、、独立 CAN 通信控制器 SJA1000和 CAN 总线收发器 PCA82C250。微处理器 80C51负责 SJA1000的初始化,通过控制SJA1000实现数据的发送和接收等通信任务。 CAN 总线节点的软件设计主要包括三大部分:CAN 节点初始化、报文发送和报文接收。本系统通过扩展CAN 总线控制器SJA1000,在单片机系统中实现了CAN 总线的接口,并且编写了SJA1000 的驱动程序,通过读写其的内部寄存器,完成工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器<AMR )和接收代码寄存器<ACR )的设置、波特率参数设置和中断允许寄存器 <IER)的设置等基本
3、操作;利用各基本操作,完成了对SJA1000 的初始化,并且实现了数据发送和接收。个人资料整理仅限学习使用目录第 1 章原理与方案 11.1 设计目的与要求11.2 CAN 总线介绍 11.3 设计方案 2硬件设计方案2软件设计方案4第 2 章硬件连接与说明 5 2.1 硬件连接 5模块使用说明6实验箱连线 62.2 CAN 总线控制器 SJA100062.3 CAN 控制器接口 PCA82C2507第 3 章软件流程图及说明83.1 软件流程图 8主程序流程图8初始化子程序流程图8发送数据子程序流程图10接收数据子程序流程图103.2 软件实现过程10第 4 章结果分析及心得体会 12 4.
4、1 结果分析 124.2 心得体会 13个人资料整理仅限学习使用应用中的问题14总线的其他应用14附录程序清单 15参考文献 23个人资料整理仅限学习使用第 1 章 原理与方案1.1 设计目的与要求扩展 CAN 总线控制器,在单片机系统中实现CAN 总线的接口,并编写接口芯片的驱动程序。通过CAN 总线,实现两个模块之间的数据通讯,CPU 控制第一个模块发送1 帧数据,第二个模块收到这帧数据并送至另一个 CPU 的内部存储器。1.2 CAN 总线介绍CAN 全称为“ Controller Area Network ”, 即控制器局域网,是国际上应用最广泛的现场总线之一。最初CAN 被设计作为汽
5、车环境中的微控制器通讯,在车载各电子控制装置ECU 之间交换信息,形成汽车电子控制网络。比如发动机管理、系统变速箱控制器、仪表装备中,均嵌入CAN控制装置。一个由 CAN 总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。例如当使用 PhilipsPCA82C250 作为 CAN 收发器时,同一网络中允许挂接110 个节点 。CAN可提供高达1Mbit/s 的数据传输速率,这使实时控制变得非常容易,另外硬件的错误检定特性也增强了CAN 的抗电磁干扰能力。CAN 是一种多主方式的串行通讯总线。基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测
6、出产生的任何错误。当信号传输距离达到10Km时, CAN仍可提供高达50Kbit/s的数据传输速率。由于CAN总线具有很高的实时性能,因此CAN已经在汽车工业、航空工业、个人资料整理仅限学习使用工业控制、安全防护等领域中得到了广泛应用。1.3 设计方案在本系统中,采用 80C51 单片机, 80C51 与 PC 机串行通信,设置 SJA1000 工作于 Intel 模式,由 PC 机发送的数据写入 SJA1000 并通过 CAN收发器发送。接收数据是通过中断进行的, CAN 总线传输过来的数据经 CAN 接口芯片 PCA82C250 接收并写入 SJA1000 的 RXFIFO ,然后通过中断
7、提请 CPU 读取,读取的数据上传送给 PC 机。总体设计框图如图1-2 所示。PC机80C51SJA1000PCA82C250CAN总线PC机80C51SJA1000PCA82C250图 1-2 总体设计框图硬件设计方案1. 芯片介绍SJA1000:独立式 CAN 控制器,具有 64 字节的 FIFO 作为接收缓存。6N137:高速光隔,最高速度10Mbs,用于保护 CAN 控制器。PCA82C250:CAN 总线收发器,是CAN 控制器与CAN 总线的接口器件,对 CAN 总线差分式发送。2. CAN 控制器与 CPU 接口设计对于 CPU 来说, CAN 控制器是确保双方独立工作的存贮器
8、映象外围个人资料整理仅限学习使用设备。 CAN 控制器与外部 CPU 的接口是通过控制器接口逻辑<CIL )实现的, 80C51 的 CPU 通过将地址总线 <AB )和数据总线 <DB)连接到 CIL 上来完成与 CAN 控制器之间的信息交换 ,不需要专门的控制总线 <CB ),CPU 与 PCA82C250 之间的状态、控制和命令信号的交换在CAN 控制器中完成。SJA1000 与单片机的接口电路如图 1-3 所示。图 1-3 SJA1000与单片机的接口电路3. CAN 控制器工作电路的连接为了增强 CAN 总线节点的抗干扰能力, SJA1000 的 TX0 和
9、RX0 并不是直接与 PCA82C250 的 TXD 和 RXD 相连,而是通过高速光隔 6N137 后与 PCA82C250 相连,这样就很好的实现了总线上各 CAN 节点间的电气隔离。若 PCA82C250 处于 CAN 总线的网络终端,总线接口部分需加一个120 欧姆的匹配电阻。个人资料整理仅限学习使用CAN 控制器工作电路如下图所示:图 1-4 CAN 控制器工作电路软件设计方案CAN总线节点的软件设计主要包括三大部分:CAN节点初始化、报文发送和报文接收。熟悉这三部分程序的设计就能编写出利用CAN总线进行通信的一般应用程序。当然要将CAN 总线应用于通信任务比较复杂的系统中,还需详细
10、了解有关CAN 总线错误处理、总线脱离处理、接收滤波处理、波特率参数设置和自动检测以及CAN 总线通信距离和节点数的计算等方面的内容。SJA1000 的初始化只有在复位模式下才可以进行,初始化主要包括工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器<AMR )和接收代码寄存器<ACR )的设置、波特率参数设置和中断允许寄存器<IER )的设置等。在完成SJA1000 的初始化设置以后,SJA1000 就可以回到工作状个人资料整理仅限学习使用态,进行正常的通信任务。发送子程序负责节点报文的发送。发送时用户只需将待发送的数据按特定格式组合成一帧报文,送入SJA1000 发送缓存
11、区中,然后启动SJA1000 发送即可。接收子程序负责节点报文的接收以及其它情况处理。接收子程序比发送子程序要复杂一些,因为在处理接收报文的过程中,同时要对诸如总线脱离、错误报警、接收溢出等情况进行处理。SJA1000 报文的接收主要有两种方式:中断接收方式和查询接收方式,两种接收方式编程的思路基本相同,如果对通信的实时性要求不是很强,一般采用查询接收方式。第 2 章 硬件连接与说明2.1 硬件连接单片机与 CAN 模块等外围器件的连接如图2-1 所示。图 2-1 系统原理图个人资料整理仅限学习使用模块使用说明CAN 总线模块由一个 CAN 总线控制器 SJA1000 和一个 CAN 收发器
12、PCA82C250 组成 ,它们共同构成一个 CAN 节点。模块的电源由接口挂箱上的接口插座提供。模块上的 RESET、INT 、TX0 、RX0 插孔分别对应于SJA1000 芯片上的相应引脚。模块上带有上电复位电路,也可通过RESET 插孔进行手动复位,只需在 RESET 上加上负脉冲。模块上提供两个RJ45 接口和一组“ CANH 、 CANL ”插孔接口,这三组接口是完全一致的。对于近距离CAN 模块之间的通讯,可将各模块的“ CANH 、 CANL ”插孔用导线连接;对于远距离 CAN 模块之间的通讯,则可用双绞线连接各 RJ45 接口。每个 CAN 模块上都有一组终端电阻接口,即“
13、 A 、B”插孔。当总线上只有两个 CAN 节点时,终端电阻可不接。如总线上的CAN 节点数为个或 3 个以上时,必须有一个而且只能有一个CAN 模块接上终端电阻。3具体接法为:将A 插孔和 CANL 插孔、 B 插孔和 CANH 插孔分别用导线连接。实验箱连线两个 CAN 模块分别接在两个实验台上,第一个模块 <发送)跳线接LCS2,第二个模块 <接收)跳线接 LCS3,用双绞线连接两个模块的 RJ45 接口,将第一个 CAN 模块接上终端电阻。2.2 CAN 总线控制器 SJA1000SJA1000 是一种独立的CAN 控制器,主要用于移动目标和一般工业环境中的区域网络控制。它
14、是Philips 半导体公司 PCA82C200 CAN 控制器<BasicCAN )的替代产品,增加了一种新的操作模式PeliCAN ,这种个人资料整理仅限学习使用模式支持具有很多新特性的CAN2.0B 协议。2.3 CAN 控制器接口 PCA82C250PCA82C250 是 CAN 协议控制器和物理总线间的接口,它主要是为汽车中高速通讯 <高达 1Mbps)应用而设计。此器件对总线提供差动发送能力,对 CAN 控制器提供差动接收能力,与ISO11898标准完全兼容。PCA82C250 芯片由接收器、驱动器、基准电压产生电路、工作模式选择电路及保护电路等组成。 PCA82C25
15、0 内部的限流电路可以防止发送输出级对电池电压的正端和负端短路。虽然在这种故障条件出现时,功耗将增加,但这种特性可以阻止发送器输出级的破坏。在节点温度大约超过160时,两个发送器输出端的极限电流将减少。由于发送器是功耗的主要部分,因此芯片温度会迅速降低。 PCA82C50 芯片的其他部分将继续工作。当总线短路时,热保护十分重要。CANH 和 CANL 两条线也可以防止在汽车环境下可能发生的电气瞬变现象。个人资料整理仅限学习使用第 3 章 软件流程图及说明3.1 软件流程图主程序流程图程序开始运行后,先调用初始化子程序,分别对两个CAN 模块中的SJA1000 进行初始化,然后把要发送的数据写入
16、CPU 的存储器中,然后循环调用发送数据子程序和接收数据子程序。具体流程如图3-1 所示。个人资料整理仅限学习使用开始CAN1 初始化,验收代码为 AAHCAN2 初始化,验收代码为 BBH待发送数据写入存储器CAN1 发送数据CPU 读取数据结束图 3-1 主程序流程图初始化子程序流程图初始化子程序先设置 MOD 选择复位模式,然后分别设置 CDR 选择工作模式;设置 IER 选择中断类型;设置 BTR0、BTR1 设定传输速率;设置 OCR 选择输出模式;设置 ACR 、 AMR 设定接收数据类型; RBSA 、TXERR 、ECC 均清零,最后设置MOD 进入工作模式。具体流程如图3-2
17、所示。个人资料整理仅限学习使用开始设置复位模式设置时钟分频寄存器设置中断时能寄存器设置总线定时寄存器设置输出控制寄存器设置验收代码寄存器设置验收屏蔽寄存器接收缓冲器首址清零发送错误计数器清零错误代码捕捉寄存器清零进入工作模式结束图 3-2 初始化子程序流程图发送数据子程序流程图发送数据子程序先把三个控制字节写入发送缓冲区,然后把等待发送个人资料整理仅限学习使用的数据也写入发送缓冲区,最后设置 CMR,发出发送请求、启动SJA1000 发送数据。具体流程如图3-3 所示。开始控制字节写入发送缓冲区待发送数据写入发送缓冲区设置命令寄存器启动 SJA1000发送结束图 3-3 发送数据子程序流程图接
18、收数据子程序流程图接收数据子程序首先要读SR 和 IR,判断工作状态及中断类型并做相应处理,若RXFIFO 有数据,应判断帧类型并做相应处理,若数据正确则送至 CPU 的内部存储器。具体流程如图3-4 所示。3.2 软件实现过程两个实验台运行程序CAN.ASM< 程序见附录),发送实验台全速运行程序,接收实验台要在主程序中调用接收数据子程序后设置断点,等待接收到数据后送至CPU 的存储器,然后查看CPU 的内部存储器 30H37H 中的数据与程序中发送的数据是否一致。个人资料整理仅限学习使用开始否是否总线关闭、出错、溢出、有数据是是否总是线关闭否清除中断位读中断寄存器是进入工作模式是否溢
19、出否清除数据溢出接收缓冲区否是否有数据是是是否远程帧释放接收否缓冲区把接收数据送到 CPU释放仲裁丢失捕捉寄存器释放错误代码捕捉寄存器结束图 3-4 接收数据子程序流程图个人资料整理仅限学习使用第 4 章 结果分析及心得体会4.1 结果分析本实验通过扩展CAN 总线控制器,在单片机系统中实现了CAN 总线的接口,通过CAN 总线,实现了两个模块之间的数据通讯,在第一个模块中发送 1 帧数据,在第二个模块中收到这帧数据并送至了CPU 的内部存储器 30H37H。如果要修改发送数据,只需修改程序中“ TXDATA ”后 8 个字节的数据即可。发送实验台内部存储器如图4-1 所示。图 4-1 发送实
20、验台个人资料整理仅限学习使用接收实验台内部存储器如图4-2 所示。图 4-2 接收实验台4.2 心得体会通过本次设计对CAN 总线的工作原理及其与CPU 的接口方式有了一定程度的理解。基于CAN 总线可实现多种数据的传输,例如:可将文字、图像等进行编码后传输,并在接收端进行解码后恢复,由于时间有限未做深入研究。开发 CAN 总线控制节点时,还可以使用集成了CAN 控制器的CPU80C592,但支持80C592 的开发工具少,给开发工作带来一定的难度。所以一般使用独立的CAN 控制器 SJA1000 配合单片机进行开发。个人资料整理仅限学习使用应用中的问题SJA1000 有 BasicCAN 和
21、 PeliCAN 两种工作模式, SJAl000 上电复位后自动进入 BasicCAN ,因此选用 PeliCAN 模式必须在程序中设置时钟分频寄存器 <CDR)选择工作模式。总线定时寄存器的设置极大影响了CAN 性能的发挥。一般来说,若硬件连接无误,通信失败的主要原因在于总线定时寄存器设置不当。在实验中,曾出现过因SJA1000 的时钟电路中晶振严重漂移导致通信失败的情况。ACR 和 AMR 两个寄存器构成硬件过滤, CAN 节点通过它来决定是否接收总线上的数据,是否置CAN 的接收中断,这极大地提高了系统的灵活性。可以通过中断寄存器 <IR)、状态寄存器 <SR)查询 C
22、AN 总线的工作状态,了解数据传输状况。为了保证数据的正常收发,需要对状态寄存器和中断寄存器各状态位的变化做出相应处理。总线的其他应用CAN <Controller Area Network )总线最早由德国BOSCH 公司提出,主要用于汽车内部测量与控制中心之间的数据通信。由于其良好的性能,在世界范围内广泛应用于其他领域当中,如工业自动化、汽车电子、楼宇建筑、电梯网络、电力通讯和安防消防等诸多领域,并逐渐成为这些行业的主要通讯手段。一个由 CAN 总线构成的单一网络中,可以挂接多个节点,实际应用中只需要设置几个节点为上位节点与PC机进行通信,其他节点则可以做其他用途。如用于数据的采集,
23、则与A/D 转换芯片相接即可;如与控制相关,则与控制口相接即可,这样一来可以灵活地构成各种系统。CAN 总线具有多方面的优势,可以组建一个具有高可靠性、远距离、个人资料整理仅限学习使用多节点、多主方式的设备通讯网络,例如:我国许多煤矿中都采用基于CAN-BUS 网络的煤矿通讯网络。附录 程序清单CAN.ASMMODEQU00H。模式寄存器CMREQU01H。命令寄存器SREQU02H。状态寄存器IREQU03H。中断寄存器IEREQU04H。中断使能寄存器BTR0EQU06H。总线定时寄存器 0BTR1EQU07H。总线定时寄存器 1OCREQU08H。输出控制寄存器ALCEQU0BH。仲裁丢
24、失捕捉寄存器ECCEQU0CH。错误代码捕捉寄存器TXERREQU0FH。发送错误计数器ACR0EQU10H。验收代码寄存器 0ACR1 EQU11H。验收代码寄存器 1ACR2 EQU12H 。验收代码寄存器 2ACR3 EQU13H。验收代码寄存器 3AMR0EQU14H。验收屏蔽寄存器 0AMR1 EQU15H。验收屏蔽寄存器 1AMR2 EQU16H。验收屏蔽寄存器 2AMR3 EQU17H。验收屏蔽寄存器 3个人资料整理仅限学习使用FINEQU10H。发送 /接收帧信息ID1EQU11H。发送 /接收缓冲区之标示符一ID2EQU12H。发送 /接收缓冲区之标示符二DATA1EQU13
25、H。发送 /接收数据首址RBSAEQU1EH。接收缓冲器起始地址CDREQU1FH。时钟分频寄存器。 - READER COS 1.0 -ORG4000HJMPSTARTORG4080H。 -主程序 -START:MOVDPH, #0D3H。CAN1 初始化 (CAN1 片选为。LCS2:0D300H>MOVR0, #0AAH。验收代码为 AAHLCALLINITCANMOVDPH, #0D4H。CAN2初始化 (CAN2片选为。LCS3:0D400H>MOVR0, #0BBH。验收代码为 BBHLCALLINITCAN。 -SS1:MOVR0, #20H。20H-27H 赋初值M
26、OVR1, #00HMOVDPTR,#TXDATAMOVA,R1MOVCA, A+DPTRMOVR0, A个人资料整理仅限学习使用INCR0INCR1CJNER1,#08,SS1。 - CAN1发送LOOP: MOVDPH, #0D3HMOVR0, #20HLCALL SEND。发送1 帧数据 -20H 为首址的 1 帧数据 (前三。控制字节为 :08H、BBH 、FFH,由程序给出)LCALL DELAY。调用延时子程序。 -CAN2接收 1 帧数据 -MOVDPH, #0D4HMOVR0, #30HLCALL RECV。调用接收数据子程序NOP。设断点处HALT:JMPLOOPTXDATA
27、:DB 0AAH,0BBH,0CCH,0D4H。要发送的一帧数据,用户可改写DB 0E5H,0F6H,97H,18H。 - 初始化子程序-INITCAN:。DPH、R0 为入口参数MOVDPL,#MOD。模式寄存器,选择单验收滤波器模。式,进入复位模式MOVA,#09HMOVXDPTR,A个人资料整理 仅限学习使用MOVDPL,#CDR。时钟分频器,选择 PeliCAN 模式,MOVA,#88H。关闭 CLKOUT 输出MOVXDPTR, AMOVDPL,#IER 。中断使能寄存器,开溢出、错误、MOVA,#0DH。接收中断MOVXDPTR,AMOVDPL,#BTR0。总线定时寄存器0MOVA
28、,#03HMOVXDPTR,AMOVDPL,#BTR1。总线定时寄存器1,6MHz 晶振,MOV A,#0FFH。波特率 30KbpsMOVXDPTR,AMOVXA, DPTRMOVDPL,#OCR。输出控制寄存器,。选择正常输出模式MOVA,#0AAHMOVXDPTR,AMOVDPL,#ACR0。验收代码寄存器 ACR0MOVA, R0MOVXDPTR,AINCDPTR。验收代码寄存器 ACR1MOVA,#0FFHMOVXDPTR,AINCDPTR。验收代码寄存器 ACR2MOVXDPTR,AINCDPTR。验收代码寄存器 ACR3MOVXDPTR,A个人资料整理 仅限学习使用MOVDPL,
29、#AMR0。验收屏蔽寄存器 AMR0MOVA,#00HMOVXDPTR,AINCDPTR。验收屏蔽寄存器 AMR1MOVA,#0FFHMOVXDPTR,AINCDPTR。验收屏蔽寄存器 AMR2MOVXDPTR,AINCDPTR。验收屏蔽寄存器 AMR3MOVXDPTR,AMOVDPL, #RBSA。接收缓冲器起始地址为 0MOVA, #00HMOVXDPTR, AMOVDPL, #TXERR。清除发送错误计数器MOVXDPTR, AMOVDPL, #ECC。清除错误代码捕捉寄存器MOVXDPTR, AMOVDPL,#MOD。单验收滤波器模式,返回工作模式MOVA,#08HMOVXDPTR,A
30、RET。 - 发送数据子程序 -SEND:。 DPH、 R0 为入口参数MOVDPL,#FIN。SJA1000 发送缓存区首址MOVMOVXINCA, #08HDPTR, ADPL个人资料整理 仅限学习使用MOVA, #0BBHMOVXDPTR, AINCDPLMOVA, #0FFHMOVXDPTR, AINCDPLMOVR2, #08HSEND1:MOVA, R0。R0 为发送数据首址MOVXDPTR, AINCR0INCDPLDJNZ R2, SEND1MOVDPL,#CMR。命令寄存器发出发送请求,MOVA,#01H。启动 SJA1000 发送MOVXDPTR,ARET。 - 接收数据子
31、程序 -RECV:。 DPH、 R0 为入口参数MOVDPL,#SR。状态寄存器地址MOVX A,DPTRANLA, #0C3H。读取总线关闭、出错、接收溢出、。有数据等位JNZPROCRET。无上述状态,结束PROC: JNBACC.7, PROC1BUSERR:MOVDPL, #IR。IR 中断寄存器,出现总线关闭MOVXA, DPTR。读中断寄存器,清除中断位个人资料整理仅限学习使用MOVDPL, #MODMOVA, #08HMOVXDPTR, A。将方式寄存器复位请求位清RETNOPPROC1: MOVDPL, #IR。总线正常MOVXA, DPTR。读取中断位JNBACC.3, OT
32、HEROVER: MOVDPL, #CMR。数据溢出处理MOVA, #0CHMOVXDPTR, A。清除数据溢出位,释放接收缓冲区RETNOPOTHER: JBACC.0, RECELJMPRECOUT。接收缓冲区无数据NOPRECE: MOVDPL, #FIN。接收缓冲区有数据MOVXA,DPTRJNBACC.6, RDATAMOVDPL, #CMR。远程帧处理MOVA, #04HMOVXDPTR, ALJMPRECOUTNOPRDATA: MOVDPL, #FIN。发送 /接收数据首址MOVXA, DPTRINCDPL0个人资料整理 仅限学习使用MOVXA, DPTRINCDPLMOVXA
33、, DPTRINCDPLMOVR2, #08HRDATA1: MOVXA, DPTRMOVR0, A。将接收数据传至 R0 为首址的内存中INCDPLINCR0DJNZR2, RDATA1MOVDPL, #CMRMOVA, #04HMOVXDPTR, ARECOUT:MOVDPL, #ALC。释放仲裁丢失捕捉寄存器MOVXA, DPTRMOVDPL, #ECC。释放错误代码捕捉寄存器MOVXA, DPTRNOPRET。 - 延时子程序 -DELAY: MOV R2, #40DELAY1: MOV R4, #255DELAY2: NOPDJNZ R4, DELAY2DJNZ R2, DELAY1
34、RETEND个人资料整理仅限学习使用参考文献1 李全利,迟荣强 .单片机原理及接口技术 .北京:高等教育出版社, 20042 饶运涛,邹继军,郑勇芸 .现场总线 CAN 原理与应用技术 .北京:北京航空航天大学出版社, 20033 邬宽明 . CAN 总线原理和应用系统设计 . 北京:北京航空航天大学出版社, 20044 杨金岩,郑应强,张振宇 .8051 单片机数据传输接口扩展技术与应用实例 .北京:人民邮电出版社, 20055 陈晓忠,黄宁,赵小侠 .单片机接口技术适用子程序 .北京:人民邮电出版社, 20056 邬宽明 . 单片机外围器件使用手册数据传输接口器件分册 .北京:北京航空航天大学出版社, 19987 广州周立功单片机发展有限公司 . SJA1000独立 CAN 控制器应用指南8 广州周立功单片机发展有限公司 . PCA82C250 CAN 控制器接口数据手册