1 00:00:02,400 --> 00:00:03,860 Okay, we're live. 2 00:00:03,860 --> 00:00:08,280 Thank you, John, for the lead off. 3 00:00:08,280 --> 00:00:15,260 And welcome back, everyone, to another Car Hacking 101 talk for DEF CON Safe Mode 2020's Car Hacking Village. 4 00:00:16,200 --> 00:00:20,840 My name is Kamal, and in this lecture, I'm going to be talking about in-vehicle networks. 5 00:00:20,840 --> 00:00:27,900 I'm also doing a talk for Bluetooth in the same kind of vein of Car Hacking 101 talks. 6 00:00:27,900 --> 00:00:38,800 So if you've already seen or heard my introduction, I apologize profusely, but I have to give it again for those of you that might not be interested in Bluetooth or just coming to this one first. 7 00:00:38,800 --> 00:00:42,200 So a very short speaker introduction, right? 8 00:00:42,260 --> 00:00:44,680 As I mentioned before, my name is Kamal, Kamal Ghali. 9 00:00:44,680 --> 00:00:48,860 I'm an automotive cybersecurity technology architect at White Motion. 10 00:00:48,860 --> 00:00:52,480 White Motion is a small automotive cybersecurity-focused company. 11 00:00:52,480 --> 00:00:54,500 We're a subsidiary of Morelli. 12 00:00:54,500 --> 00:00:57,860 It's a much larger Italian automotive tier one supplier. 13 00:00:58,060 --> 00:01:09,520 It's actually the combination of the older Magneti Morelli, Italian automotive tier one, and a Japanese tier one called CalSonic Kansei. 14 00:01:09,520 --> 00:01:18,840 They actually merged a couple of years ago, and White Motion was at the time owned by CalSonic Kansei, and now we are a full subsidiary of Morelli Corporation. 15 00:01:18,840 --> 00:01:20,740 So I myself am based in Tokyo. 16 00:01:20,740 --> 00:01:28,120 I'm a trilingual car hacking enthusiast, because for me, this is very much more than just a job. 17 00:01:28,120 --> 00:01:29,500 It is more than just a profession. 18 00:01:29,500 --> 00:01:35,540 It's something I enjoy, and I enjoy doing a lot of volunteer activities in the industry as well. 19 00:01:35,540 --> 00:01:39,640 For example, this Car Hacking 101 talk is not something anyone is paying me for. 20 00:01:39,640 --> 00:01:42,240 No one is, you know, my boss didn't tell me to go do this. 21 00:01:42,240 --> 00:01:52,140 This is entirely because I enjoy what I do, and I think a lot of people would enjoy doing what I do, and I want to make sure that the knowledge is easily accessible for people that want to join the industry. 22 00:01:52,140 --> 00:01:57,060 So along those lines, I am an ex-admin of ASRG Detroit. 23 00:01:57,060 --> 00:02:10,540 I got involved in Automotive Security Research Group while I was living in Michigan, helping out with things like working on collaboration between industry and academia, and I'm the founder of the Automotive Security Research Group Japan. 24 00:02:10,540 --> 00:02:28,660 For any of you that aren't aware, Automotive Security Research Group is an organization dedicated to sharing information about automotive cybersecurity, making it more readily available, mainly being driven by the community as opposed to, you know, its own industrial entity, 25 00:02:28,660 --> 00:02:28,860 right? 26 00:02:28,860 --> 00:02:33,160 So it's a pretty open community, and a lot of, you know, freely available talks, etc. 27 00:02:33,160 --> 00:02:36,520 are available online for anyone that wants to learn about automotive security. 28 00:02:36,720 --> 00:02:43,660 But anyway, I've gone on a bit of a rant there, but I like to consider myself a jack of some trades, a master of none. 29 00:02:43,660 --> 00:02:51,240 My recent areas of interest are Bluetooth, USB, radio frequency, digital forensics, and I have some interesting hobbies of mine that I have listed down below. 30 00:02:51,240 --> 00:02:56,760 But today we're not talking about any of these technologies, we're going to talk about in-vehicle networks. 31 00:02:56,760 --> 00:02:59,080 So what is an in-vehicle network? 32 00:02:59,080 --> 00:03:06,220 An in-vehicle network is, as you know, I would hope is obvious, it is a network that's used inside a vehicle, right? 33 00:03:06,220 --> 00:03:16,040 So it's a networking technology that's used to allow the ECUs inside a vehicle to efficiently and, you know, safely share information between one another. 34 00:03:16,040 --> 00:03:30,620 So these in-vehicle network technologies are designed specifically for use in these closed environments where you have, you know, several ECUs inside a vehicle, they need to share sensor information, you know, the results of calculations, calibration information, 35 00:03:30,620 --> 00:03:37,000 vehicle status, so on and so forth, with other distributed processing units throughout the vehicle, right? 36 00:03:37,520 --> 00:03:41,340 If you consider, you know, very broadly speaking, a network can be anything. 37 00:03:41,340 --> 00:03:48,040 It can be Bluetooth as a network, you know, 4G, 5G, those are networks, DSRC is a network, Wi-Fi is a network. 38 00:03:48,040 --> 00:03:55,980 But for the purposes of this talk, I'd like to make it clear that I'm talking about physical networks, I'm talking about guided medium networks, right? 39 00:03:55,980 --> 00:04:12,120 For those of you with a background in networking, you might know the difference between a guided and an unguided medium for your network is that guided means it's got copper or fiber in place that actually, well, guides the transmission of information along a specified path, 40 00:04:12,120 --> 00:04:12,260 right? 41 00:04:12,260 --> 00:04:16,060 It's not radiated like it is in most wireless communications, right? 42 00:04:16,060 --> 00:04:23,940 So we're going to be talking about those kind of physical wire communications, be they copper-based or fiber-based, and how they're used in a vehicle. 43 00:04:23,940 --> 00:04:29,320 I'm going to go over some of the different types of inter-vehicle networks that are found in the industry today. 44 00:04:29,320 --> 00:04:35,200 I'm going to talk a little bit about each one of them, how they're used, what their strengths are, what their weaknesses are, etc, right? 45 00:04:35,200 --> 00:04:46,960 Strengths and weaknesses are a big part of inter-vehicle networks because, as you can see, I have listed here, they are selected based on what role they fill for a given application, right? 46 00:04:46,960 --> 00:04:52,420 There's no one-size-fits-all, best-in-vehicle-network solution that can do everything. 47 00:04:52,420 --> 00:05:01,040 There are different solutions, different technologies available that manufacturers selectively include in their vehicles based on where they're most appropriate, right? 48 00:05:01,040 --> 00:05:03,340 You'll see how this works out in just a second. 49 00:05:03,980 --> 00:05:16,220 So, in the context, excuse me, I was drinking some pineapple juice and some of it's got stuck in my throat, which is probably not a great way to get ready for giving a recorded talk. 50 00:05:16,240 --> 00:05:24,820 But in the context of a self-driving or autonomous vehicle, this is a fairly common, you know, logical setup within a vehicle, right? 51 00:05:24,820 --> 00:05:30,060 In this diagram, we have a couple of ECUs alongside a sensor and some actuators, right? 52 00:05:30,060 --> 00:05:33,020 The sensor in this case could be, you know, any number of things. 53 00:05:33,020 --> 00:05:41,880 It could be a camera, it could be an accelerometer, a CO2 sensor, a LiDAR sensor, user input sensor, radio, you know, it could be almost anything, right? 54 00:05:41,880 --> 00:05:50,320 The sensor is, at this point, in this logical diagram, we're just treating this sensor as a source of raw information, right? 55 00:05:50,320 --> 00:05:53,180 The data that this device generates needs to be processed. 56 00:05:53,180 --> 00:06:08,840 This is, the sensor isn't, is intaking raw information and that information needs to be processed, it needs to be interpreted by a processing unit so that the vehicle as a whole can kind of understand what that raw data means about the vehicle's environment, 57 00:06:08,840 --> 00:06:11,840 what it has to do next, so on and so forth, right? 58 00:06:11,940 --> 00:06:20,220 So based on what kind of sensor it is, you know, what kind of data it's going to be producing and how much of that data it's producing is going to be different. 59 00:06:20,280 --> 00:06:28,900 And a different in-vehicle network technology might be chosen to carry that data from where it's generated to where it gets processed here in the ECU, right? 60 00:06:28,900 --> 00:06:35,580 So along this diagram, if we take it, you know, kind of from start to finish, this sensor here is going to generate some raw data, right? 61 00:06:35,580 --> 00:06:38,840 This is going to be a camera that's facing, you know, towards the front of the vehicle. 62 00:06:38,840 --> 00:06:41,340 It could be, you know, just assume it's a camera, right? 63 00:06:41,340 --> 00:06:45,840 And it takes that image data and it sends it to ECU 1 for processing, right? 64 00:06:45,840 --> 00:06:50,620 Because the processing power is going to be contained here on the ECU's microcontroller, right? 65 00:06:50,620 --> 00:06:55,380 So this line here is meant to represent an in-vehicle network, right? 66 00:06:55,380 --> 00:07:01,300 Because something needs to be in place for this sensor to be able to send that data to ECU number 1 over here, right? 67 00:07:01,300 --> 00:07:09,760 Once ECU 1 has the raw data, it's going to be able to do some calculations, you know, interpret that data, understand what that data means, right? 68 00:07:09,760 --> 00:07:18,000 Is there, you know, a traffic sign, you know, a stop sign in front of us, a red stoplight, you know, how self-driving cars should stop for stoplights, so on and so forth. 69 00:07:18,000 --> 00:07:26,680 It's going to make those decisions and, you know, understand the raw data it received, and then it's going to pass the results of those calculations on to another ECU, right? 70 00:07:26,680 --> 00:07:29,740 And then maybe this ECU is in charge of something else, right? 71 00:07:29,740 --> 00:07:33,600 Here I have, you know, two very broadly defined actuators, right? 72 00:07:33,600 --> 00:07:49,100 An actuator in this scenario being any device that upon receiving, you know, an input from a processing unit converts that input into a physical real-world stimulus, right? 73 00:07:49,100 --> 00:07:50,960 A thing that happens, right? 74 00:07:50,960 --> 00:07:53,880 This is what I mean when I'm talking about an actuator. 75 00:07:56,140 --> 00:08:16,940 So each of these lines here is meant to represent an in-vehicle network, and I have them all colored the same way because at this stage, you know, I haven't talked about the different types of in-vehicle networks, but each one of these is likely going to be a different type of in-vehicle network technology because the amount of data being processed from here to here might be different with the amount of data processed between these two, 76 00:08:16,940 --> 00:08:21,880 and it might be different from the amount of data processed between, you know, ECU 2 and the actuators, right? 77 00:08:21,880 --> 00:08:34,020 So some things to take into consideration when considering which in-vehicle network technology to choose would be things like safety and robustness requirements, distance from the ECU to the actual sensor, right? 78 00:08:34,020 --> 00:08:40,340 Bandwidth necessities, how much data is being processed, what kind of data it is, how, you know, how fast it needs to be processed. 79 00:08:40,340 --> 00:08:47,040 All of these are metrics you want to take into consideration when picking the appropriate in-vehicle network to use, right? 80 00:08:47,240 --> 00:08:54,440 So going on, we're going to talk a little bit about network topologies and how they relate to in-vehicle networks. 81 00:08:54,440 --> 00:08:57,700 So I have here, I ripped this image from the internet somewhere. 82 00:08:57,700 --> 00:08:59,300 I have the source listed down here. 83 00:08:59,300 --> 00:09:02,220 This is a look at a couple of common network topologies, right? 84 00:09:02,220 --> 00:09:07,900 You have your mesh network, you have your fully connected network, which is also called a full mesh network, right? 85 00:09:07,900 --> 00:09:11,240 You have star topology, ring, and a common bus topology. 86 00:09:11,240 --> 00:09:21,960 These might be pretty familiar to you if you've worked as a systems administrator or you have any, you know, experience as an actual networking engineer, right? 87 00:09:21,960 --> 00:09:31,840 Some of these would be familiar and how they relate to in-vehicle networks is that we... where am I going with this? 88 00:09:31,840 --> 00:09:37,880 Okay, most of the in-vehicle networks that I'm going to talk about today will use a common bus topology, right? 89 00:09:37,880 --> 00:09:43,320 But that doesn't mean that there aren't some that use other topologies instead, right? 90 00:09:44,200 --> 00:09:50,940 Because in-vehicle networks are designed to be reliable and robust because they are, you know, part of a vehicle ecosystem. 91 00:09:50,940 --> 00:09:58,440 A vehicle is a moving object that moves very fast, is very heavy, and has living breathing people inside it. 92 00:09:58,440 --> 00:10:04,000 There are a lot of important, you know, safety thresholds that need to be met. 93 00:10:04,000 --> 00:10:11,300 There are a lot of standards that, you know, are in place to best guarantee the safety of the passengers and the environment around the vehicle. 94 00:10:11,300 --> 00:10:23,120 And so when we talk about things like the networks that we use for transferring this information, it's important to know that they need to be designed with a level of robustness and reliability and safety in mind, right? 95 00:10:23,120 --> 00:10:37,280 So with regards to the networks shown here, some of them have strengths and weaknesses that are realized, or I suppose they can be seen in the in-vehicle network technologies that make use of these topologies, right? 96 00:10:37,280 --> 00:10:39,400 So say you have a fully connected network. 97 00:10:39,400 --> 00:10:51,840 This is a very expensive, very hard to implement type of network, because every single unit in this device is going to have a direct link to every other unit in the network, right? 98 00:10:51,840 --> 00:10:58,300 This means you need to have the hardware and infrastructure to connect every unit to every other unit, right? 99 00:10:58,680 --> 00:11:03,800 And the positive to this is that, you know, you have incredible redundancy. 100 00:11:03,800 --> 00:11:05,820 If any link goes down, it doesn't matter. 101 00:11:05,820 --> 00:11:10,140 Every computer has a link to every other computer, or every other processor, right? 102 00:11:10,140 --> 00:11:13,100 Every other microcontroller, so on and so forth, whatever it could be, right? 103 00:11:13,100 --> 00:11:22,840 So if this ECU here, let's pretend these are ECUs and not desktops, if this ECU wants to communicate with this ECU, but this direct link between them breaks, right? 104 00:11:22,880 --> 00:11:28,920 The obvious logical conclusion is then, well, I can still talk to this ECU, but through any number of other paths. 105 00:11:28,920 --> 00:11:33,080 I can go from him to him, I can go from him to him, or from him to him, or from him to him. 106 00:11:33,080 --> 00:11:37,320 The fully connected network topology offers the most amount of redundancy, right? 107 00:11:37,320 --> 00:11:54,260 But the downsides are, like I mentioned earlier, they're expensive, they're sometimes a little bit more complicated to implement, and especially when it comes to cars, the actual physical cable weight is becoming a sort of rising concern for automotive manufacturers, 108 00:11:54,260 --> 00:11:54,400 right? 109 00:11:54,400 --> 00:11:59,580 The actual weight of the cable harness is not a trivial thing. 110 00:11:59,580 --> 00:12:02,720 It's not a trivial part of the vehicle ecosystem , right? 111 00:12:02,720 --> 00:12:16,300 The actual designing of a vehicle needs to take into account how much cabling is going to be in there, because you can have, you know, I don't, I'm not, you know, an expert on how much cable goes into cars, but I'd say it can amount to quite a bit of weight, 112 00:12:16,300 --> 00:12:16,560 right? 113 00:12:16,560 --> 00:12:20,620 A couple, maybe tens of kilograms, I would assume, right? 114 00:12:20,620 --> 00:12:22,780 This is just an educated guess, right? 115 00:12:22,780 --> 00:12:29,660 But I'm sure someone more familiar with that actual metric would be able to give you a more accurate number there. 116 00:12:29,660 --> 00:12:34,960 But those are the pros and cons of something like a full connected, fully connected network topology. 117 00:12:34,960 --> 00:12:40,880 A mesh network is kind of like a not full connected network topology. 118 00:12:40,880 --> 00:12:42,600 It's kind of like an in-between, right? 119 00:12:42,600 --> 00:12:51,200 You'll have different devices here with different connections to some, if not all, of the other processors in the network, right? 120 00:12:51,200 --> 00:13:02,080 This is good because you'll have some level of redundancy where if, say, this line goes down, right, then you can still reach this processor here by going, okay, we'll go here, here, and then here, right? 121 00:13:02,080 --> 00:13:08,560 So you have different paths that your data can take if you need to send data from one processor to another on the network. 122 00:13:08,560 --> 00:13:19,120 A common bus topology, this is where all of the ECUs, in this case, will be connected to a single common bus that they can all send or receive data from at the same time. 123 00:13:19,120 --> 00:13:20,920 This is how CAN bus works. 124 00:13:20,980 --> 00:13:28,400 I'll talk about that in the next couple of slides, as it's the most common in-vehicle network in the automotive industry currently. 125 00:13:28,560 --> 00:13:34,740 But this is a pretty common implementation because of how easy it is, right? 126 00:13:34,740 --> 00:13:42,680 All of the nodes are just connected to one network, and there isn't any kind of routing protocol you have to implement, especially when it comes to CAN, right? 127 00:13:42,680 --> 00:13:46,460 It's very simple, it's easy to get set up, and it works pretty well. 128 00:13:46,460 --> 00:13:53,120 But one of the downsides, and it's cheap, by the way, but one of the downsides is that this common bus then becomes a single point of failure. 129 00:13:53,120 --> 00:13:59,340 So maybe, you know, you wouldn't use something like this in a very high, a very critically important system, right? 130 00:13:59,340 --> 00:14:11,340 Especially when we're talking about things like government systems or military systems, you're more likely to see something like this because they are prioritizing, you know, in the moment operational stability over everything else, whereas for a mass-produced vehicle, 131 00:14:11,340 --> 00:14:13,980 right, this is kind of how you want to go, right? 132 00:14:13,980 --> 00:14:21,860 It's because it needs to be mass-produced, it's not feasible to make every single car on the road in this, you know, fancy of an architecture. 133 00:14:22,280 --> 00:14:30,400 Moving on, ring topology is pretty rare, but I believe that the most protocol... I'm talking about rare as in within the vehicle or context, right? 134 00:14:30,400 --> 00:14:38,300 Within the most protocol, I believe a ring topology is used, although there are different versions of most and some of them might be able to be used in other versions. 135 00:14:38,880 --> 00:14:44,740 Most isn't a technology I've personally worked with a lot because it is pretty rare, but I will touch on it briefly in this presentation. 136 00:14:44,820 --> 00:14:46,500 And then you have a star network topology. 137 00:14:46,500 --> 00:14:58,120 This is one of the more common topologies, and especially when it comes to discussing technologies like automotive ethernet and, you know, trying to run TCP IP inside cars, right? 138 00:14:58,120 --> 00:15:03,260 Those are point-to-point protocols, and for that, a star topology makes a lot of sense. 139 00:15:03,260 --> 00:15:08,260 It's a very happy medium, you know, it doesn't have an excessive amount of cabling and it doesn't have... 140 00:15:10,080 --> 00:15:22,200 if one of these links goes down, then the rest of the network is usually protected, but you do have to rely on something like a switch or something in the middle to handle forwarding of communication between the different ECUs, right? 141 00:15:22,200 --> 00:15:26,680 But it's kind of seen as a happy medium network topology, right? 142 00:15:26,680 --> 00:15:32,420 But anyway, enough about topologies, let's start talking about individual in-vehicle networks. 143 00:15:32,600 --> 00:15:38,720 So CAN bus is kind of the main character of the in-vehicle network technology world, right? 144 00:15:38,720 --> 00:15:40,760 CAN stands for controller area network. 145 00:15:40,760 --> 00:15:45,500 It is the most commonly used in-vehicle network today by far, right? 146 00:15:45,500 --> 00:15:53,720 It is more or less standardized and mandated on most vehicles in the United States and Europe for diagnostic purposes. 147 00:15:53,720 --> 00:16:00,080 It was developed by Robert Bosch in 1991, is when the 2.0 standard came out, right? 148 00:16:00,080 --> 00:16:15,420 The most common nodes you'll find in the market today are actually 2.0b standard CAN bus nodes, and the 2.0b distinction is that they allow for the use of 29-bit arbitration identifiers. 149 00:16:15,420 --> 00:16:26,460 Arbitration is the process by which CAN messages have their priority established, and this is the process by which CAN bus actually handles collisions, right? 150 00:16:26,460 --> 00:16:34,680 Collisions are detected and then resolved instantaneously, almost instantaneously, through the use of arbitration IDs. 151 00:16:34,960 --> 00:16:46,240 I don't think we're going to talk too much about the actual arbitration process today because that's slightly more in-depth for CAN bus, but this is how CAN bus is addressing, is with arbitration IDs. 152 00:16:46,300 --> 00:16:48,680 But I'll just put this out here now. 153 00:16:48,680 --> 00:16:53,480 CAN bus runs in a bus architecture, and it's a multi-master serial communication. 154 00:16:53,480 --> 00:17:00,320 So anyone can send a message, and the arbitration identifier isn't really meant as a source address or a destination address. 155 00:17:00,320 --> 00:17:04,600 It just identifies what kind of data is in this packet, right? 156 00:17:04,600 --> 00:17:11,400 So if you slapped a sticker to a car saying, you know, this car has oranges in it, right? 157 00:17:11,400 --> 00:17:13,100 That's kind of what that does. 158 00:17:13,320 --> 00:17:19,300 Saying this truck has oranges in it doesn't mean, you know, it's specific oranges for one person. 159 00:17:19,300 --> 00:17:23,960 There's just oranges, and anyone that wants an orange can stop this truck and get an orange. 160 00:17:23,960 --> 00:17:33,300 That's a horrible example, but hopefully that'll get across the idea of what an arbitration ID does in a CAN frame, right? 161 00:17:33,300 --> 00:17:36,720 And then, you know, back to the CAN frames themselves. 162 00:17:36,720 --> 00:17:42,320 Each CAN bus frame in Classical CAN can hold up to eight bytes of data, right? 163 00:17:43,200 --> 00:17:45,900 So there are a couple different kinds of CANs. 164 00:17:45,900 --> 00:17:51,580 The main, most common CAN bus is high-speed CAN, also called a dual-wire CAN. 165 00:17:51,580 --> 00:17:56,960 And this is important because there's a single-wire CAN that also exists, but dual-wire CAN is the most common one. 166 00:17:56,960 --> 00:18:04,920 It uses differential signaling and commonly employs twisted pair cabling to include, to add some EMI resistance to it, right? 167 00:18:04,920 --> 00:18:11,980 I mentioned that in-vehicle networks need to be reliable, they need to be robust, and this is because a vehicle is a pretty noisy environment. 168 00:18:12,100 --> 00:18:17,060 If you're not familiar with what EMI is, right, this EMI here, it's electromagnetic interference. 169 00:18:17,060 --> 00:18:39,240 This is when things like power supplies or radios or microwaves or anything that's giving off, you know, radio waves, those radio waves can have on a physical, you know, physics electronics level, they can actually corrupt some of the data being carried by a guided medium if that guided medium isn't properly shielded, 170 00:18:39,240 --> 00:18:39,760 right? 171 00:18:39,760 --> 00:18:47,600 So this twisted pair cabling is also there to help that because all... well, the way twisted pair cabling works, I'll explain that in a second. 172 00:18:47,600 --> 00:18:50,980 I have a slide where I like to go a little bit more in depth into that. 173 00:18:50,980 --> 00:18:58,420 But the differential signaling and the twisted pair cabling work together to help mitigate EMI impact, right? 174 00:18:58,420 --> 00:19:10,600 Speeds are theoretically up to one megabit per second, although in practice you're more likely to find 125 kilobits per second, 250 kilobits per second, and 500 kilobits per second speeds in most cars, right? 175 00:19:10,600 --> 00:19:22,260 One megabit speeds are heavily restricted by cable length because at a certain length of cable it's no longer practical to transmit that fast, and it's just usually a better idea to stick with 500 kilobits. 176 00:19:22,380 --> 00:19:23,760 It's more reliable, right? 177 00:19:23,760 --> 00:19:25,180 Just take my word for it. 178 00:19:25,540 --> 00:19:30,340 This is a quick look at what a CAN bus actually looks like from the physical perspective. 179 00:19:31,040 --> 00:19:34,920 CAN buses are usually terminated with 120 ohms on both ends, right? 180 00:19:34,920 --> 00:19:36,820 This is a high-speed CAN bus, by the way. 181 00:19:38,280 --> 00:19:45,460 And then on each end, each node will have its own CAN transceiver that is connected to a CAN low line and a CAN high line, right? 182 00:19:45,460 --> 00:19:50,060 So CAN bus is technically a dual-wire system when we're talking about high-speed CAN. 183 00:19:50,200 --> 00:19:52,540 CAN, right? 184 00:19:52,540 --> 00:19:54,800 And these are intertwined like this. 185 00:19:54,800 --> 00:19:57,740 This is the twisted pair that I was talking about, right? 186 00:19:57,740 --> 00:20:07,100 So you can see that there's a high voltage CAN line and a low voltage CAN line, and the difference between these two CAN lines is what is read when a logic is being registered. 187 00:20:07,100 --> 00:20:09,000 That's the differential signaling. 188 00:20:09,480 --> 00:20:14,000 Excuse me, pineapple juice is starting to make me burp a little bit. 189 00:20:14,140 --> 00:20:17,260 But anyway, back to differential signaling, as I was mentioning. 190 00:20:17,260 --> 00:20:22,740 So this is a very easy to understand diagram showing how differential signaling works in CAN, right? 191 00:20:22,740 --> 00:20:26,980 Here we have a logic graph and an actual physical voltage graph, right? 192 00:20:26,980 --> 00:20:31,740 So in high-speed CAN, CAN high and CAN low both rest at around 2.5 volts. 193 00:20:31,740 --> 00:20:38,280 This is their kind of resting state, and this is what is read as a recessive logic or a logic zero, right? 194 00:20:38,280 --> 00:20:54,520 As counterintuitive as it might seem, logic one in CAN bus is considered recessive and logic zero is considered dominant, so this shows here how the physical bus would look and the logic bus would look if we were to transmit 101 on a CAN bus, right? 195 00:20:54,520 --> 00:20:59,700 We'd have the recessive, both lines here at 2.5 volts with a zero volt differential. 196 00:20:59,700 --> 00:21:03,540 We have dominant for one bit cycle. 197 00:21:04,140 --> 00:21:14,760 During that bit cycle time, the CAN high line gets driven to 3.5 volts and the CAN low line gets driven down to 1.5 volts, right? 198 00:21:14,760 --> 00:21:18,900 This two volt differential is what is kind of registered. 199 00:21:18,900 --> 00:21:21,840 It's what's recognized as a logic zero, right? 200 00:21:21,840 --> 00:21:30,260 And then the bus voltages go back down to 2.5 and another recessive logic one is registered. 201 00:21:30,440 --> 00:21:35,620 I'm going to talk a little bit about how the twisted pair cabling actually protects against EMI. 202 00:21:35,620 --> 00:21:37,520 Let me pull out my pen and PowerPoint. 203 00:21:37,520 --> 00:21:46,380 So twisted pair cabling means that the two bus lines, CAN high and CAN low, are intertwined with each other very tightly, right? 204 00:21:46,380 --> 00:21:51,260 They aren't just straight across, you know, from one node to another. 205 00:21:51,260 --> 00:21:56,240 You can make them that way, but it's better not to because of EMI, right? 206 00:21:56,240 --> 00:22:09,340 So the way that works, because those cables are intertwined so tightly, any electromagnetic interference that hits that bus is very likely to hit both CAN high and CAN low, right? 207 00:22:09,340 --> 00:22:13,980 So what happens if that kind of scenario occurs? 208 00:22:13,980 --> 00:22:15,520 Well, let's draw it out. 209 00:22:15,520 --> 00:22:20,340 Say there's an electromagnetic pulse and it's CAN high and CAN low at the same time. 210 00:22:20,340 --> 00:22:24,100 It causes a voltage spike that looks kind of like this, right? 211 00:22:24,540 --> 00:22:28,560 And then later down here it also comes up like that, right? 212 00:22:29,320 --> 00:22:31,100 So that's the CAN high. 213 00:22:31,100 --> 00:22:32,780 I should have switched the colors here. 214 00:22:32,780 --> 00:22:37,120 I'm kind of a fool, but I didn't do it, so just forgive me, right? 215 00:22:37,120 --> 00:22:43,460 The idea is because they're twisted so tightly, we're likely to see the same exact behavior on CAN low, right? 216 00:22:43,460 --> 00:22:52,860 Now I'm doing a really shitty job of actually drawing this exactly the same from one to the other, but let's just pretend that these look exactly the same. 217 00:22:52,860 --> 00:22:59,540 And then while the bus is in the recessive state, let's say that that interference continues, right? 218 00:22:59,540 --> 00:23:05,180 We'll see the same physical impact on both bus lines, right? 219 00:23:05,180 --> 00:23:07,280 Now, why is that important, right? 220 00:23:07,280 --> 00:23:18,500 Remember how the differential signaling, the differential part means that we're measuring the voltage not based on the raw voltage values of the lines, but by the difference between the voltages. 221 00:23:18,500 --> 00:23:29,520 So here, when we're trying to transmit the zero, even though we have this interference, the difference between this point and this point is still two volts, right? 222 00:23:29,520 --> 00:23:31,120 So we'll still read a zero. 223 00:23:31,120 --> 00:23:35,380 The difference between this point and this point is still two volts, right? 224 00:23:35,380 --> 00:23:47,460 Even if this goes negative, right, and we have the same interference here because those wires are twisted together, the difference between this low point here and this low point here is still two volts, right? 225 00:23:47,460 --> 00:24:05,020 So the idea is by combining differential signaling with twisted pair, you have this very robust system where even if you bombard this cable, this cabling with electromagnetic radiation, you're still likely to get your message across because of the way Canvas is set up. 226 00:24:05,020 --> 00:24:08,340 I think this is very clever and it's one of my favorite things about Canvas. 227 00:24:08,380 --> 00:24:16,600 So it's always good to talk about this and just appreciate the quality of engineering put into this technology. 228 00:24:16,760 --> 00:24:20,360 But onto less common types of Canvas, there's single wire CAN. 229 00:24:20,360 --> 00:24:25,540 It is designated as Society Automotive Engineers Standard J2411. 230 00:24:25,540 --> 00:24:32,040 It's CAN for applications with incredibly low bandwidth requirements and not as much robustness requirements. 231 00:24:32,040 --> 00:24:38,320 And as the name would suggest, it uses only one wire as opposed to high-speed CAN's dual wire. 232 00:24:38,320 --> 00:24:47,660 But on that note, it uses 33 kilobits per second as its maximum data rate, so quite a bit slower than high-speed CAN. 233 00:24:47,660 --> 00:24:52,460 And it does not use differential signaling, so it's not as robust or resilient to EMI. 234 00:24:52,840 --> 00:24:58,980 And the way the signaling works in single wire CAN is more of a raw voltage value reading, right? 235 00:24:58,980 --> 00:25:04,940 So you have a much larger differential between the recessive value and the dominant value. 236 00:25:04,940 --> 00:25:11,900 So in single wire CAN, zero volts is considered recessive and four volts is considered a dominant bit, right? 237 00:25:12,240 --> 00:25:26,680 Low-speed fault-tolerant CAN, the importance of introducing single wire CAN is that you understand that low-speed fault-tolerant CAN exists as a way to increase the reliability of high-speed CAN, right? 238 00:25:26,680 --> 00:25:34,820 Even if you thought high-speed CAN was incredibly reliable and robust from the description I just gave of it, there's still more that can be done. 239 00:25:34,820 --> 00:25:38,100 So the way low-speed fault-tolerant CAN works is it does a couple of things. 240 00:25:38,100 --> 00:25:42,760 It actually divides the termination on the bus amongst the nodes, right? 241 00:25:42,760 --> 00:25:49,840 So if you remember in the... let's just go back a second to the slide where I showed the high-speed CAN bus, right? 242 00:25:49,840 --> 00:25:52,820 You have 120 ohms here and 120 ohms here, right? 243 00:25:52,820 --> 00:25:56,840 These two 120 ohm resistors in parallel come out to be 60 ohms, right? 244 00:25:56,920 --> 00:26:00,040 But these become more or less single points of failure. 245 00:26:00,040 --> 00:26:02,620 You remove one of these and your bus doesn't work anymore. 246 00:26:03,060 --> 00:26:05,760 But in fault-tolerant CAN, right? 247 00:26:05,760 --> 00:26:16,720 Low-speed fault-tolerant CAN, you distribute the resistors along the nodes on the bus to actually give the opportunity for the bus to keep working even if one of these nodes gets removed. 248 00:26:16,720 --> 00:26:24,040 Even if one of these resistors gets removed, you still have enough resistance on the bus for CAN bus to work properly, right? 249 00:26:24,040 --> 00:26:38,100 It also has higher voltage differentials to keep things from getting too... it's just more robustness just in case there's, you know, an especially large amount of EMI interference, right? 250 00:26:38,100 --> 00:26:45,740 CAN high gets driven to 5 volts and CAN low gets driven to zero volts in the event of a dominant bit transmission, right? 251 00:26:45,740 --> 00:26:55,400 And then another fault-tolerance feature included is that if a wire is damaged, then LSFT can actually switch over to single-wire CAN operation, right? 252 00:26:55,420 --> 00:27:04,980 But at the cost of this is that it's, you know, more expensive to implement and the maximum data rate you can get with this kind of implementation is only 125 kilobits per second. 253 00:27:05,180 --> 00:27:14,360 And for those reasons, it's not very commonly seen but it does exist and I figured I'd share, you know, knowledge of its existence with you guys today. 254 00:27:14,500 --> 00:27:17,760 So just to summarize, where CAN is used, right? 255 00:27:17,760 --> 00:27:23,700 Instrument clusters, component control, HVAC, so your car's, you know, climate control, etc. 256 00:27:23,880 --> 00:27:29,040 Headlights, brake lights, window status, GPS, diagnostic information, so much more, right? 257 00:27:29,040 --> 00:27:35,380 GPS, I mean, like the CAN bus will carry GPS data to share with other parts of the vehicle. 258 00:27:35,440 --> 00:27:40,860 Your CAN bus isn't generating GPS data, you're getting that from a satellite, but you already knew that, right? 259 00:27:40,860 --> 00:27:45,580 So the point is CAN bus is truly the main character of in-vehicle network technologies. 260 00:27:45,580 --> 00:28:00,380 It has the most applications and it is also, I would say, the easiest in-vehicle network technology to begin to learn how to use because there are lots of open source, freely available software tools that you don't even need any hardware, really, to get started to learn how to use a CAN bus, 261 00:28:00,380 --> 00:28:00,580 right? 262 00:28:00,580 --> 00:28:06,920 They have visualization software available that you can use if you wanted to get started, but that's not what this talk is about. 263 00:28:06,920 --> 00:28:14,880 But it's truly, truly the coolest in-vehicle network, I believe, and I don't think it's ever going to be phased out, no matter what anyone tells you. 264 00:28:15,100 --> 00:28:17,760 But moving on, the next one we're going to talk about is LIN. 265 00:28:17,760 --> 00:28:20,560 LIN stands for local interconnect network. 266 00:28:20,560 --> 00:28:22,960 It's kind of like CAN bus's little brother, right? 267 00:28:22,960 --> 00:28:37,340 It was actually created after CAN bus, despite having much lower specs from a technical perspective, and it was made to take the place of CAN bus for low bandwidth applications that didn't require the same grade of reliability and robustness that CAN offered, 268 00:28:37,340 --> 00:28:37,800 right? 269 00:28:37,800 --> 00:28:42,580 Like CAN is pretty cheap as far as in-vehicle network technologies go, but you can always go cheaper, right? 270 00:28:42,580 --> 00:28:52,480 So for things like your, you know, very... I'll say some examples later, but very low speed, very low bandwidth applications, LIN bus will usually do the trick, right? 271 00:28:52,480 --> 00:28:56,840 And it's also a uniform standard for improved compatibility across manufacturers. 272 00:28:56,840 --> 00:29:04,560 It runs on basic... you can actually program a basic UART transceiver to work with LIN, right? 273 00:29:04,560 --> 00:29:11,680 It utilizes a bus topology and it's a broadcast serial network with a master-slave architecture, supports up to 16 nodes, right? 274 00:29:11,680 --> 00:29:23,900 So it's much simpler in its design compared to CAN, but like I said, it has its place in the industry because sometimes you don't need any more than those very basic capabilities. 275 00:29:24,180 --> 00:29:33,560 So LIN also uses a single wire, similar to single wired CAN, and it only communicates at 20 kilobits per second, so it's even slower than single wired CAN, right? 276 00:29:33,560 --> 00:29:43,460 But it has guaranteed latency on its transmissions because it utilizes a scheduling table where the master will periodically pull slave nodes for their data, right? 277 00:29:43,460 --> 00:29:51,200 And it includes data checks on error detection for basic error handling, right? 278 00:29:51,200 --> 00:29:53,820 As you'd expect of something used in automotive, right? 279 00:29:53,820 --> 00:29:58,740 It even has that, you know, bare minimum robustness included into it. 280 00:29:59,040 --> 00:30:08,500 And like I mentioned just previously, the transmission is done according to a scheduling table, and here I have a quick diagram showing how a transmission will go. 281 00:30:08,500 --> 00:30:27,280 So normally you'll have one device on the bus considered the master device, and that master has a schedule according to which it will send out this master header frame, which kind of includes, you know, it'll essentially say like, hey, I want this data, 282 00:30:27,280 --> 00:30:27,480 right? 283 00:30:27,480 --> 00:30:29,080 According to this identifier. 284 00:30:29,080 --> 00:30:36,260 And then the corresponding slave node that has the data associated with the identifier will then fill in the rest of that data, right? 285 00:30:36,260 --> 00:30:41,100 The slave node will then begin to transmit from this point, right, after this response space. 286 00:30:41,100 --> 00:30:49,300 And on the bus, the way that messages appear is as one lin message, but it's actually half transmitted by the master and half by the slave, right? 287 00:30:49,300 --> 00:31:05,680 So this is all part of a automated sequence where the master header, or the, sorry, the master node will send out these requests periodically for data updates, and the slave nodes will respond in churn as they're pulled, right? 288 00:31:05,680 --> 00:31:08,520 So it's pretty simple, but it's pretty effective. 289 00:31:08,700 --> 00:31:14,780 You'll actually see Linbus used in things like, if you have powered seats in your car, right? 290 00:31:14,780 --> 00:31:19,320 You know, the ability to relax your, you know, your lumbar support, right? 291 00:31:19,320 --> 00:31:24,880 Kind of the motorized seat control, right, for comfort. 292 00:31:24,880 --> 00:31:26,480 That's usually done in Linbus. 293 00:31:26,480 --> 00:31:34,820 Other things of very low importance, I'd say probably moving your mirrors, right, that might be dedicated to Linbus. 294 00:31:34,820 --> 00:31:44,280 Anything that you can see as being not incredibly important in a real -time high-speed driving situation, there's a chance it could be dedicated to Linbus. 295 00:31:44,340 --> 00:31:50,900 So it's always good to know that Linbus exists, even if it is kind of a small-time player in the automotive sector. 296 00:31:51,040 --> 00:31:59,440 So talking about some of the bigger boys, the more newer in-vehicle network technologies, the more recent ones with higher specs, we get to FlexRay. 297 00:31:59,440 --> 00:32:06,940 It's high-bandwidth, high-reliability communication, and it's developed for applications where CAN isn't appropriate or fast enough, right? 298 00:32:06,940 --> 00:32:10,240 So FlexRay is kind of like a next-gen in-vehicle network. 299 00:32:10,240 --> 00:32:22,600 It uses two communication channels between each node, and it uses differential signaling like CAN, but it actually has two channels, an A and a B channel, so you have four wires per connection, right? 300 00:32:22,680 --> 00:32:29,220 So it adds redundancy, but it also makes it a pretty expensive protocol to implement, right? 301 00:32:29,220 --> 00:32:31,520 But that's kind of how it goes, right? 302 00:32:31,520 --> 00:32:40,460 If you want to add more speed, more functionality, you need to make things a little bit more expensive, just because that's how the world works, right? 303 00:32:40,640 --> 00:32:49,860 FlexRay payloads support up to 254 bytes in size, and FlexRay is commonly used in X-by-wire systems, right? 304 00:32:49,860 --> 00:33:03,300 So because of its high speed, because of its robustness, you know, in a similar vein to that of CAN bus, you're able to use it for things like direct control of throttle, direct control of steering, and direct control of braking, right? 305 00:33:03,520 --> 00:33:19,480 The theoretical maximum data rate is about 10 megabits per second, so about 10 times as much as CAN's theoretical maximum speed, but since it's a proprietary protocol, it is a little bit more expensive and also a little bit more complicated, especially for the car hacking crowd. 306 00:33:19,480 --> 00:33:31,420 It's not as easy to get tools that can work with FlexRay, especially if you're just starting and you don't have a, you know, a wealthy industry supporter providing you with industry-grade tools. 307 00:33:31,420 --> 00:33:36,620 It can be hard to get involved with FlexRay just because of how complex it is, right? 308 00:33:36,960 --> 00:33:43,680 But moving on, so I'm going to talk about another next-gen vehicle network technology is CAN FD. 309 00:33:43,680 --> 00:33:46,820 So CAN FD, the FD stands for flexible data rate. 310 00:33:46,820 --> 00:33:50,640 It's the evolution, quote-unquote, of traditional CAN bus, right? 311 00:33:50,640 --> 00:33:56,200 It retains many, if not all of the features of classic CAN, right? 312 00:33:56,200 --> 00:34:02,380 And this is, it was kept that way because of the success CAN had in the industry, right? 313 00:34:02,380 --> 00:34:13,260 It worked really well, we're still using it today even though it's over 30 years old now, I think, yeah, about 30 years old, but it does its job so well there's no real reason to phase it out. 314 00:34:13,260 --> 00:34:29,120 But if you wanted to be able to add higher, you know, if you wanted to be able to use CAN in applications where its basic data rate wasn't appropriate, you would need some kind of evolution for that, and CAN FD is the manifestation of that desire, right? 315 00:34:29,120 --> 00:34:40,340 So the flexible data rate is achieved by increasing the rate of transfer of the data portion of a CAN message after the message arbitration has been completed, right? 316 00:34:40,500 --> 00:34:53,460 And this is just a reality of things, it's due to some issues with classical CAN controllers, some of them will flag CAN FD messages as errors, so it has a bit of backwards compatibility issues. 317 00:34:53,460 --> 00:34:59,600 Sorry, I'm trying to talk a little bit faster than I should, I'll slow down a little bit. 318 00:35:00,140 --> 00:35:12,000 But CAN FD payloads can range from 8 bytes of data to 64 bytes, which means it transmits 64 bytes in the same time it takes classic CAN to transmit 8 bytes, right? 319 00:35:12,000 --> 00:35:30,460 So the theoretical maximum speed of CAN FD is going to be about 8 megabits per second, but in reality, because you only speed up the data field portion of a CAN FD message, the real-time practical throughput is about 6 times that of CAN bus, so about 6, 320 00:35:30,460 --> 00:35:33,860 maybe 7 megabits per second at absolute maximum, right? 321 00:35:33,860 --> 00:35:51,060 Because you have to keep the overhead and so on the same speed in order to keep cable lengths feasible, cable lengths appropriate, and for, you know, backwards compatibility, especially if you have nodes that are equipped to experience CAN FD messages but aren't really CAN FD nodes themselves, 322 00:35:51,060 --> 00:35:55,400 you know, there's kind of like a gray material, gray material, gray zone for that, right? 323 00:35:55,400 --> 00:36:00,160 But the maximum data rates, according to estimates, will vary. 324 00:36:00,160 --> 00:36:09,200 Some people will say it can go as high as 10 megabits, but, you know, more, less optimistic estimates settle around the 5 to 7 megabit marker. 325 00:36:09,680 --> 00:36:13,760 So moving on, MOST is the Media Oriented Systems Transport. 326 00:36:13,760 --> 00:36:24,140 It's optimized for in-vehicle media systems, so it's very, very high speed, uses a daisy chain topology, the ring topology that I showed earlier, right? 327 00:36:24,140 --> 00:36:40,340 And it's, it uses a master device for timing that manages communications, and MOST is one of the first in-vehicle networks to support optical fiber physical layer, making it more or less impervious to electromagnetic interference. 328 00:36:40,340 --> 00:36:43,960 MOST has never been used for like critical vehicle control, right? 329 00:36:43,960 --> 00:36:49,920 I mentioned that it's optimized for in-vehicle media systems, and that's why it has such a high frequency, right? 330 00:36:49,960 --> 00:36:52,520 High frequency, high bandwidth, right? 331 00:36:52,520 --> 00:37:06,760 Because you need to be able to process things like video, process things like audio data, process, you know, anything that's going to be used by a media console is probably going to be very high quality data if you want it to be, you know, competitive in the market today, 332 00:37:06,760 --> 00:37:07,260 right? 333 00:37:07,260 --> 00:37:11,500 I'm kind of a quality buff myself when it comes to watching anything on a screen. 334 00:37:11,780 --> 00:37:13,840 But it comes in a couple of flavors, right? 335 00:37:13,840 --> 00:37:16,380 MOST 25, 50, and 150, right? 336 00:37:16,380 --> 00:37:23,840 Each of these corresponding to the actual speed, and each one of them has shown to be applicable to different physical mediums, right? 337 00:37:23,840 --> 00:37:33,160 To the best of my knowledge, MOST 25 was only implemented on fiber, and then 50 and 150 can be used on fiber or optical fiber or copper. 338 00:37:33,160 --> 00:37:41,000 And then there was also... it was also a candidate for implementation of Ethernet in automobiles, right? 339 00:37:41,000 --> 00:37:43,940 The way MOST was set up. 340 00:37:43,940 --> 00:37:49,360 But speaking of Ethernet, automotive Ethernet is kind of like the cool kid on the block, right? 341 00:37:49,360 --> 00:37:54,980 The new transfer student that everyone is interested in is automotive Ethernet, right? 342 00:37:54,980 --> 00:38:02,340 They're very dynamic, they're very high-powered, and everyone is interested in seeing what they can do, right? 343 00:38:02,620 --> 00:38:11,100 It's almost traditional to Ethernet used in computers and traditional network infrastructure, but it uses a different physical, you know, physical layer, right? 344 00:38:11,100 --> 00:38:19,140 I believe it only uses two wires as opposed to most traditional Ethernet connections is four wires for data transfer, but don't quote me on that. 345 00:38:19,140 --> 00:38:26,400 I wouldn't call myself an automotive Ethernet expert per se, just because it's not actually found in that many cars yet, right? 346 00:38:26,400 --> 00:38:30,540 It's hard to do a lot of research on something that's not really in the industry yet. 347 00:38:30,560 --> 00:38:40,420 But unlike some of the other networks we talked about today, Ethernet is point-to-point, which makes it a little bit harder to scale to more nodes because you need to add a lot more hardware, right? 348 00:38:40,420 --> 00:38:55,400 But it has incredibly high bandwidth potential, which is especially attractive if you're talking about autonomous cars, you know, fusing data from tons of different sensors and processing all of that data for real-time decision-making on the road, right? 349 00:38:55,940 --> 00:38:58,200 Some more details about automotive Ethernet. 350 00:38:58,200 --> 00:39:02,860 Your traditional RJ45 connector isn't really appropriate for an automotive environment. 351 00:39:02,860 --> 00:39:08,960 It's not resistant enough to vibrations to stay connected without deteriorating very quickly. 352 00:39:09,020 --> 00:39:17,060 So there are a lot of different physical connectors that have been, you know, made by different vendors, but I wouldn't say there's an industry standard that's been established yet. 353 00:39:17,060 --> 00:39:21,560 But some of the more common ones include Broadcom's BroadReach type, right? 354 00:39:21,560 --> 00:39:27,620 That's a decently common automotive Ethernet connector type as far as connectors go. 355 00:39:27,620 --> 00:39:33,800 But anyway, about, you know, the important thing, the data rates, they can reach as high as 10 gigabits per second. 356 00:39:33,800 --> 00:39:36,580 I don't know why I wrote 10G megabits per second here. 357 00:39:36,580 --> 00:39:38,380 That doesn't actually mean anything. 358 00:39:39,920 --> 00:39:43,460 Typo on my part, but please forgive my ignorance, I suppose. 359 00:39:43,460 --> 00:39:47,760 But it is an expensive technology to implement, especially with how new it is. 360 00:39:47,760 --> 00:39:53,620 And so there isn't... there's a case to be made that you shouldn't always use Ethernet just because you can. 361 00:39:53,660 --> 00:40:03,980 And looking at this chart that shows a comparison of the different data rates, right, Ethernet is quite, you know, easily winning the race, right? 362 00:40:03,980 --> 00:40:11,480 This is a logarithmic scale, so you can see we go from 1 to 10 to 100 all the way up to 1 million kilobits per second, right? 363 00:40:11,720 --> 00:40:15,880 These other technologies don't even compare to the speed Ethernet can put out. 364 00:40:15,920 --> 00:40:22,300 But at the end of the day, do you need this much speed for most of your applications? 365 00:40:22,300 --> 00:40:24,840 And the answer is no, right? 366 00:40:24,840 --> 00:40:28,120 Like, why don't we just use Ethernet for everything now that we've figured out how to use it? 367 00:40:28,120 --> 00:40:32,700 Isn't it just going to save, you know, save in-vehicle networking, right? 368 00:40:32,700 --> 00:40:36,280 No more thinking about what technology to use, just use Ethernet. 369 00:40:36,280 --> 00:40:37,120 Well, no, right? 370 00:40:37,120 --> 00:40:38,460 It's expensive to implement. 371 00:40:38,460 --> 00:40:47,920 It's new to the automotive domain, so there's no, like, proven use for it as the only in-vehicle network you need, right? 372 00:40:47,920 --> 00:41:06,220 It requires more hardware, thanks to the fact that you might need switching hardware in place to actually do the addressing, you know, at a higher level, especially if you want to implement TCP or IP into your TCP IP in your vehicle, which increases the point of failure relative to, 373 00:41:06,220 --> 00:41:11,200 you know, that one switch being a single point of failure for the entire network, so on and so forth, right? 374 00:41:11,200 --> 00:41:17,280 And the real important thing here at the end of the day is the cost argument. 375 00:41:17,280 --> 00:41:20,260 It's not necessary to have that much bandwidth all the time, right? 376 00:41:20,260 --> 00:41:24,860 The old saying, why use a fire hose where a squirt gun will suffice, right? 377 00:41:25,360 --> 00:41:33,740 It's truly a case of knowing how much data you need, how fast of a, you know, connection you need between these two ECUs. 378 00:41:33,820 --> 00:41:42,100 Is it really worth it to invest in an Ethernet implementation if that means you have to increase the processing power on each of those ECUs as well, right? 379 00:41:42,100 --> 00:41:55,780 Because CAN bus, for example, is much simpler to implement than Ethernet and doesn't require as much processing power on the ECUs, so you can use slightly lower grade ECUs for a CAN bus connection than you would for an Ethernet connection, right? 380 00:41:55,780 --> 00:42:03,700 There's a lot of reasons to choose a more optimal solution when it comes to lower bandwidth requirement applications, right? 381 00:42:03,820 --> 00:42:08,560 So that about wraps up my talk. 382 00:42:08,560 --> 00:42:14,400 I don't have any more cute diagrams or clever things to say, so thank you all for listening. 383 00:42:14,400 --> 00:42:20,720 I hope you were able to learn something about in-vehicle network technologies and how they're used in the automotive industry. 384 00:42:20,780 --> 00:42:22,560 My email address is listed below. 385 00:42:22,560 --> 00:42:32,560 You're welcome to send me an email if you have any questions, and yeah, I hope you enjoy the rest of the Car Hacking Village, and I will be signing off now. 386 00:42:32,560 --> 00:42:33,200 Thank you very much!