aboutsummaryrefslogtreecommitdiffstats
path: root/midterm_report/midterm_report.tex
blob: 91427e58313cdc1642ad2abda15165e749cccd91 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
\documentclass{article}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage[backend=biber]{biblatex}
\usepackage{amsmath}

\title{\textsc{Comp} 490 Midterm Report}

\author{Sam Anthony 40271987 \\
sam@samanthony.xyz \\ s\_a365@concordia.ca
\and
Hovhannes Harutyunyan, PhD \\
Department of Computer Science and Software Engineering \\
haruty@encs.concordia.ca
\and
Concordia University \\
}

\addbibresource{references.bib}

\begin{document}

\maketitle
\tableofcontents
\pagebreak


\section{Project introduction}

The goal of the project is to build an electronic device for use in cars: it is an interface between the car's CAN bus (controller area network) \cite{can20b}, and some analog gauges installed in the cockpit.
An overview of the system is shown in figure \ref{fig:system}.

\begin{figure}
	\centering
	\includegraphics[width=\textwidth]{"../proposal/diagram.png"}
	\caption{system diagram}
	\label{fig:system}
\end{figure}


\section{Desiderata}

The device must be able to perform certain functions.
As well, there are some desirable properties that it should fulfil.

These function and desirable properties are as follows:

\begin{enumerate}
	\item{Receive standard and extended CAN frames from the bus.}
	\item{Decode information in the frames.}
	\item{Generate four analog 0--5V signals suitable for driving temperature or pressure gauges.}
	\item{Generate two variable-frequency square waves for a tachometer and a speedometer.}
	\item{Be user-programmable for any encoding scheme and gauge combination.}
	\item{Run on a 12V automotive electrical power supply.}
	\item{Operate reliably in an automotive environment: resist heat, vibration, and EMI (electromagnetic interference).}
\end{enumerate}


\section{Component selection}

A car is a harsh environment for an electronic device.
The device is subject to large variations in temperature, vibration, and EMI.
To increase reliability, AEC-certified parts were chosen wherever possible.


\subsection{Logic control}

The microcontroller is at the heart of the design.
A Microchip PIC16F1459 was chosen because of its simplicity, robustness, feature set, and low cost \cite{pic16f1459}.
It is an 8-bit microcontroller that features a USB peripheral, an SPI peripheral for communicating with the other ICs, and timers for waveform generation.
The PIC is a proven design that Microchip recommends for automotive applications.
It is available in a DIP package, making it convenient for prototyping on a breadboard.

A Microchip MCP2515 serves as the CAN controller \cite{mcp2515}.
It supports CAN 2.0B and it has an SPI interface for communicating with the PIC.
An MCP2561 transceiver goes along with it \cite{mcp2561}.
Like the PIC, both these chips are available in DIP packages for prototyping on the breadboard.


\subsection{Data storage}

The EEPROM is used to store the configuration.
This includes the encoding scheme that defines how parameters are encoded in CAN frames, as well as a table mapping parameter values to output signal values.

There are six such tables: one for each gauge.
Each table has 32 entries, and the mapping is from 16-bit word to 16-bit word.
Thus, the required size is $6 \times 32 \times 16 \times 2 = 6144$ bits, or 768 bytes.
Additionally, the encoding schemes will take a handfull of bytes per gauge.

a Microchip 25LC160C EEPROM was selected.
Its 16Kib (2KiB) of space is more than adequate to hold the configuration.


\subsection{Input/output}

The PIC has an integrated USB peripheral for communicating with a host computer.
The configuration is sent to the PIC via USB and stored on the EEPROM.

Four DACs (digital-to-analog converters) generate analog signals to drive the four pressure or temperature gauges.
Based on the characteristics of commonly-used pressure and temperature sensors \cite{bosch_pst}, it was determined that a resolution of 15mV/step was required.
Given the operating voltage of 5V, this meant that the DACs must have at least $5\text{V}/15\text{mV} \approx 333$ steps of resolution.
Thus, an 8-bit DAC with 256 steps would be insufficient, and so a 10-bit DAC was selected: namely a Microchip\footnote{It is purely a coincidence that all the ICs ended up being Microchip parts. I don't have any particular affinity to the company. It just so happens that they make all the right chips for this particular application.} MCP4912.

The MCP4912 incorporates two DACs in a single chip, so there are two chips per board.


\subsection{Power supply}

The ICs require a 5V supply.
A 12V automotive electrical system operates between 9--16V, with a nominal voltage of $\sim$14V.
The voltage ripple is often quite significant as well.
Thus, the power supply must be very robust to supply a stable voltage to the ICs.

The voltage drop $V_\text{Drop} = V_\text{In} - V_\text{Out}$ is $16\text{V} - 5\text{V} = 11\text{V}$ in the worst case.
This ruled out the use of a linear regulator, since it would dissipate too much power.
The power dissipation of a linear regulator is linear in $V_\text{Drop}$:

\begin{equation}
	P = (V_\text{In} - V_\text{Out}) \times I
\end{equation}

The load current is estimated to be $\le 250$mA \cite{power_budget}.
That means a linear regulator would dissipate up to $11\text{V} \times 0.250\text{A} = 2.75$W.
That amount of power from a tiny chip would be difficult to cool.
Thus, a switching regulator is right for this design.

The power supply will discussed further in the next section.


\section{PCB design and manufacture}

TODO


\section{Firmware}

TODO


\section{Software}

TODO


\section{Errata}

TODO


\section{Next steps}

TODO


\printbibliography

\end{document}