利用API控制DS1WM 1-Wire®总线主机
摘要:本应用笔记提供了一些利用MaximAPI控制DS1WM1-Wire总线主机的C语言例程。本文讨论的内容基于DS1WM已经设计到FPGA或ASIC内,主控CPU通过API调用控制DS1WM。DS1WM通过两个文件(DS1WM.c和DS1WM.h)进行通信,这两个文件构成了API。本文讨论的例程包括:初始化、1-Wire复位、ROM搜索算法,说明了1-Wire常见功能的使用。假设读者已经了解1-Wire器件、DS1WM1-Wire主机以及1-Wire总线协议。利用API控制DS1WM1-Wire总线主机Sep03,2004摘要:本应用笔记提供了一些利用MaximAPI控制DS1WM1-Wire总线主机的C语言例程。本文讨论的内容基于DS1WM已经设计到FPGA或ASIC内,主控CPU通过API调用控制DS1WM。DS1WM通过两个文件(DS1WM.c和DS1WM.h)进行通信,这两个文件构成了API。本文讨论的例程包括:初始化、1-Wire复位、ROM搜索算法,说明了1-Wire常见功能的使用。假设读者已经了解1-Wire器件、DS1WM1-Wire主机以及1-Wire总线协议。引言DS1WM1-Wire总线主机内部生成1-Wire时序和控制信号,无需CPU产生逐位控制时序。该控制功能使系统程序设计人员能够使用API函数进行程序开发。DS1WMAPI采用ANSIC语言编写,可以为多种支持ANSIC的微处理器平台所用。以下例程介绍了如何在网络中识别、选择1-Wire从设备,并与其进行通信。图1.1-Wire网络总线示例电路图1所示的电路配置适用于以下所有示例程序。主机CPU利用DS1WM与带有链路模式和GPIO的1-Wire数字温度传感器DS28EA00以及1-Wire1KbEEPROMDS2431进行通信。示例程序重点演示API,而非从设备功能。16MHz的系统时钟通过CLK引脚提供1-Wire主机时序。1-Wire主机的端口引脚需要映射到应用微处理器的引脚。API文件DS1WM.h中包含了引脚映射功能。API头文件中的MaxNumberDevices宏必须更改为实际可能的最大器件数。DS1WM.cAPI文件中的ReadByteFromRegister和WriteByte2Register函数也需要进行修改,以便正