# How should the assignment to test software for a vehicle’s VCU be aproached?

As a graduation project, I was assigned to solve the following problem:

How can the vehicle’s behaviour be simulated in the form of a testing programme, with which the VCU software can be fully tested for correct functioning?

The VCU here is the central control unit that monitors the Engine control unit and the Transmission control unit. Additionally, it controls the Power Distribution Modules. These power and measure various sensors and systems around the vehicle. The VCU also contains the vehicle’s main interface to the driver by means of a display and buttons.

The VCU is a complete display and controller package from Murphy, the manufacturer. It communicates with the connected devices via 2 CAN busses. The VCU is not directly programmed with code, but configured by PowerVision, a design program for the display, made available also by Murphy.

In PowerVision, control and check loops, functions and systems are designed. Errors can be made during designing though, which makes them not having the intended effects on the connected hardware. This is what must be tested with the testing programme mentioned in the assignment above.

Since my experience with software testing is quite non-existent, I’m not sure how to approach this correctly, most efficiently, or most effectively. Hence my question:

• How should the assignment to test software for a vehicle’s VCU be approached?
• Is it this question which is basically for the military? engineering.stackexchange.com/q/23582/10902 Sep 18 '18 at 15:41
• @SolarMike it is related to that question yes, but it's an entirely different one. Hence, I put it in a new post.
– Bart
Sep 18 '18 at 17:30
• @user8055 It is the PV780 display from Murphy. What more specifications do you need, aside from what's been mentioned in the question?
– Bart
Sep 18 '18 at 17:35
• It it correct in my understanding that you want use PowerVision to program the VCU. You are seeking a method to validate the programming done through PowerVision. Sep 20 '18 at 22:46
• @MahendraGunawardena Yes that's how it's programmed, I don't necessarily need to test it through powervision though.
– Bart
Sep 21 '18 at 9:01

I am not too familiar with the VCU, PV780, or PowerVision. Based on your description PV780 can be configured to be the Instrument Cluster Panel (ICP) for Engine Control Unit/Module (ECM) or Transmission Control Unit. To keep a response short I have selected a Temperature gauge of the IPC. There is a very good chance this information communicated to the IPC from the ECM via the CAN bus in most automobiles.

Click on image for a larger version of the image.

Based on the attach information you device supports CAN 2.0B

Below is CAN bus message format.

Assuming that a Temperature gauge is component in the PV780 base IPC, then to test the functionality it the Temperature gauge CAN messages need developed and injected to the PV780 per the about message format. The test cases will need to validate both nominal, boundary conditions and error conditions.

Below is set of test to validate the fuel gauge on Toyota. Note the CAN ID in this case is 0x07C0, and data length is 0x08

# Combo Meter Fuel Empty + beep
IDH: 07, IDL: C0, Len: 08, Data: 04 30 03 00 01 00 00 00
#Combo Meter Fuel Empty
IDH: 07, IDL: C0, Len: 08, Data: 04 30 03 00 02 00 00 00
#Combo Meter Fuel Empty
IDH: 07, IDL: C0, Len: 08, Data: 04 30 03 00 04 00 00 00
#Combo Meter Fuel 1/4 tank
IDH: 07, IDL: C0, Len: 08, Data: 04 30 03 00 08 00 00 00
#Combo Meter Fuel 1/2 tank
IDH: 07, IDL: C0, Len: 08, Data: 04 30 03 00 10 00 00 00
#Combo Meter Fuel 3/4 tank
IDH: 07, IDL: C0, Len: 08, Data: 04 30 03 00 20 00 00 00
#Combo Meter Fuel 4/4 tank
IDH: 07, IDL: C0, Len: 08, Data: 04 30 03 00 40 00 00 00
#Combo Meter Fuel Empty
IDH: 07, IDL: C0, Len: 08, Data: 04 30 03 00 80 00 00 00


Below are some references that I used to develop this response. They expand on this summarized response.

Next you will need a tool for data ingestion. The tool that I am most familiar is Systems Analysis INterface (SAINT). This uses Labview front end and can be used to analyze data packages as will as inject data packets. I am sure their other tool. I did some digging and found a few which I have listed under references.

References: