 We're going to be looking at three different types of bus communication protocols. We'll be looking at two different types of synchronous protocols, the kind where we've got a clock cycle and everything will happen relative to the clock cycle. And then we'll also look at an asynchronous protocol. All of these are going to use memory map.io. So we'll have a few different elements in each of them. If we need it, we'll have a clock. We will also have address and control lines. The address tells us which device we're interested in working with, and the control tells us what we'd like to do with that device. We'll also have some lines dedicated to actual data. We'd like to transfer data one way or the other, and we'll use the data lines for that.