1 为CANlib准备Python
1.1 所需硬件
为了完成本指南的第一步,即发送和接收CAN报文,我们需要用到以下硬件:
- 一台装有Windows或Linux(对于Linux,最好是Ubuntu版本)操作系统(OS)的计算机。
- 两个CAN通道,我们可以使用具有两个通道的CAN通讯仪或分别具有一个通道的两个通讯仪。在此处,我将使用Kvaser USBcan Pro 2xHS v2(00752-9)。
- 如果没有可用通讯仪,可以在第一步中使用虚拟通讯仪。
- 端接正确的CAN总线。在此处,我将使用T-Connector v2(00776-5),并将电阻设置为60欧姆。
- 根据将要用到的通讯仪数量和可用的USB端口,可能需要一个USB集线器将所有设备连接到计算机上。
1.2 更改计算机并下载软件
我们需要对计算机进行更改并下载软件。需要对计算机进行以下更改:
- 您必须具有计算机的管理员权限,以便进行必要更改。
- 最新版本(或至少版本3.7以上)的Python。
- CANlib软件开发工具包软件。
- Kvaser CANlib驱动程序。
- 任何最终文本编辑器(Idle会自动与Python一起安装,本指南中将主要使用它)。
1.3 Windows
如果您使用的是Windows操作系统,请查看以下部分,以了解如何为Windows下载所需的软件。对于Linux操作系统,请查看下一部分。
1.3.1 下载并安装Python(Windows)
第一步是安装Python。关于Python的详细安装指南,请访问RealPython.com安装Python。以下是在Windows系统安装Python的简要说明:
1.3.1.1 检查Python版本(Windows)
在安装Python之前,请检查它是否已安装。打开PowerShell(通过选择windows键并搜索“powershell”),然后键入以下命令之一:
> py –version
或
> py -V
(–version和-V可互换使用)
如果已经安装了Python,输出将显示(截至2021年6月15日,Python 3.9.5是最新版本):
Python 3.9.5
如果未安装Python,则输出将类似于:
未找到Python;在没有参数的情况下运行,以从Microsoft应用商店安装,或从“Settings(设置)”>“Manage App Execution Aliases(管理应用执行别名)”禁用此快捷方式。
或
“Py”未被识别为内部或外部命令、可操作程序或批处理文件。
如果未安装Python或安装的版本太旧,我们需要安装新版本。如果已经安装了可接受的Python版本(3.7+),请跳过下一部分。
1.3.1.2 安装Python(Windows)
我们需要v3.7或更高版本的Python。在本指南中,我们将只探讨一种Python安装方法。
首先下载安装程序(有关在Windows系统安装Python的更多详细信息,请访问realpython.com):
- 打开Python.org的windows下载页面。
- 在“Download the latest version for Windows(为Windows下载最新版本)”下,点击下载Python按钮,以下载Python的最新版本。
当安装程序下载完成后,双击以运行。此时会出现一个对话框。有关该对话框,请注意以下4个事项:
- 默认安装路径位于当前Windows用户的AppData/目录中。
- “The Customize installation(自定义安装)”按钮可以自定义安装位置和选择安装的附加功能。
- “Install launcher for all users (recommended) 为所有用户安装启动器(推荐)”为默认选项。这意味着计算机上的每个用户都可以访问py.exe启动器。
- “The Add Python to path checkbox(将Python添加到路径)”复选框默认未选中。这不是必需的,因为安装后py会自动获得路径。
现在,您已经安装了Python。
现在,您已经安装了Python。
为确保安装成功,请在PowerShell中运行以下命令:
> py –version
结果应该类似于:
Python 3.9.5
1.3.2 使用虚拟环境(Windows)
为了方便地运行Python,建议使用虚拟环境。有关虚拟环境的定义,其必要性以及安装方式的更详细描述,请访问RealPython.com的python虚拟环境页面了解。使用虚拟环境的目的是帮助存储目录和接收诸如canlib之类的站点包。
要在windows中创建虚拟环境,请在powershell中运行以下命令:
> py -3 -m venv .venv –prompt .
“py -3” 规定Windows启动Python 3的最新版本,有关启动器的更多信息,请查看文档。 “-m” 表示您要运行一个模块,“venv” 是模块的名称。“.venv” 决定了虚拟环境中创建的目录的名称。“–prompt” 被激活时,将更改虚拟环境的名称,“.” 指定名称应与当前目录相同。
要激活虚拟环境,请在powershell中运行以下命令,结果应该类似于:
> .\.venv\Scripts\activate
(pyproj)>
此代码运行activate脚本(脚本是带有Python代码的文件)。该脚本位于.venv目录中的Scripts目录中。如果我们在PowerShell中运行并得到错误消息:
cannot be loaded because running scripts is disabled on this system.(无法加载,因为在此系统上禁用了运行脚本。)有关更多信息,请参见https:/go.microsoft.com/fwlink/?LinkID=135170 中的about_Execution_Policies。
然后,我们需要获得运行脚本的权限。我们可以运行:
> Set-ExecutionPolicy Unrestricted -Scope Process
在powershell中获取此会话的权限,或者我们可以运行:
> Set-ExecutionPolicy Unrestricted -Scope CurrentUser
在powershell中为当前用户获取所有后续会话的权限。
现在,我们可以单独使用环境、包和资源。要停用虚拟环境,请在powershell中键入以下命令:
> deactivate
1.3.3 下载并安装CANlib驱动程序和SDK(Windows)
在Windows上,首先我们需要安装CANlib驱动程序,您可以从Kvaser下载页面或直接从kvaser_drivers_setp.exe下载并运行“Kvaser Drivers for Windows”。
如果需要使用的不仅仅是基本的canlib库,那么还需要下载Kvaser CANlib SDK,方法是从同一Kvaser页面或直接从canlib.exe下载并安装。这将安装其他支持库的dll文件。
这两个包,“Kvaser Drivers for Windows”和“Kvaser CANlib SDK”,包含所包含dll文件的32位和64位版本。
为确保驱动程序已正确安装,请按windows按钮,然后搜索“Kvaser Device Guide(Kvaser设备指南)”。如果出现“Kvaser Device Guide(Kvaser设备指南)”,则代表安装成功。
1.4 Linux
如果您使用的是Linux操作系统,以下部分将解释如何下载Linux专门需要的软件。如果您有Windows操作系统,请查看上一部分内容。
1.4.1 下载并安装Python(Linux)
第一步是安装Python。有关安装Python的不同方法的详细指南,请访问RealPython.com安装 Python。以下是在Linux下安装Python的简要概述:
1.4.1.1 检查Python版本(Linux)
在Linux下安装Python之前,请检查是否已安装或者安装了哪个版本。打开终端并尝试以下命令:
$ python –version
$ python3 –version # Used by most Linux system to invoke python v3+
如果安装了Python,则其中一个或两个命令将返回以下信息(截至2021年6月15日,Python 3.9.5是最新版本):
Python 3.9.5
如果未安装Python或安装的版本太旧,请查看下一部分内容以安装更新版本的Python。
1.4.1.2 安装Python(Linux)
如果已经安装了可使用的Python版本(3.7+),请跳过这一部分,否则请安装Python。在本指南中,我们将使用操作系统的软件包管理器。请注意,有些操作系统没有软件包管理器。请访问realpython.com了解更多信息。我们只会介绍如何在Ubuntu 18.04、Ubuntu 20.04以及更高版本上安装。有关不同操作系统的进一步说明,请访问RealPython在Linux上安装Python。
对于Ubuntu,首先运行以下命令以确定本地Ubuntu版本:
$ lsb_release -a
然后,如果版本号为18.04或20.04及更高,请执行以下操作:
$ sudo apt-get update
$ sudo apt-get install python3 python3-pip
安装完成后,使用python3命令运行Python,使用pip3命令运行pip。再次运行Python3 –version以确保安装成功。
1.4.2 使用虚拟环境(Linux)
为了方便地运行Python,建议使用虚拟环境。有关虚拟环境的定义,其必要性以及安装方式的更详细描述,请访问RealPython.com的python虚拟环境页面。使用虚拟环境的目的是帮助存储目录和接收诸如canlib之类的站点软件包。
在创建虚拟环境之前,我们需要创建一个文件/目录,用于放置我们所需的虚拟环境和将使用该环境的项目。在此示例中,创建的文件名为env。
首先,使用以下命令创建一个新目录并进入其中:
$ mkdir python-virtual-environments && cd python-virtual-environments
然后,使用以下命令安装Python虚拟环境:
$ sudo apt-get install python3-venv
要在Linux中创建虚拟环境,请运行以下命令:
$ python3 -m venv .venv –prompt pyproj
“python3”指示Linux将启动Python 3的最新版本,“-m”指示我们要运行一个模块,“venv”是模块的名称。“.venv”决定将在其中创建虚拟环境的目录的名称。“–prompt”在虚拟环境被激活时更改其名称,“pyproj”指定名称应为“pyproj”。
要激活虚拟环境,我们需要运行以下命令:
$ source .venv/bin/activate
(pyproj) $
这是一条通过venv到bin最后激活的源代码路径。现在,我们可以单独使用环境、包和资源。要停用虚拟环境,请键入:
(pyproj) $ deactivate
1.4.3 下载并安装CANlib驱动程序和SDK(Linux)
在Linux中,首先通过下载和安装”Kvaser LINUX Driver and SDK”来安装CANlib,该软件可以在Kvaser下载页面中或直接从linuxcan.tar.gz中找到。
如果要使用的不仅仅是基本的canlib库,则通过下载和安装”Linux SDK库” kvlibsdk.tar.gz来获得其他支持的库。要检查是否正确安装,请运行listChannels,结果应该类似于:
(pyproj)$ /usr/doc/canlib/examples/listChannels
CANlib version 5.36
Found 4 channel(s).
ch 0: Kvaser USBcan Pro 2xHS v2 73-30130-00752-9, s/n 13406, v3.25.753 (mhydra v8.36.575)
ch 1: Kvaser USBcan Pro 2xHS v2 73-30130-00752-9, s/n 13406, v3.25.753 (mhydra v8.36.575)
ch 2: Kvaser Virtual CAN 0-00000-00000-0, s/n 1, v0.0.0 (kvvirtualcan v8.36.575)
ch 3: Kvaser Virtual CAN 0-00000-00000-0, s/n 1, v0.0.0 (kvvirtualcan v8.36.575)