Typically 2 hosts that are communicating and one host wants to terminate the session, at most, a four-way handshake is utilized. Each side of the connection would terminate the session independently. To answer your question, yes, if DeviceA wishes to end the connection, it transmits a FIN packet, which the other end acknowledges with an ACK. Therefore, a typical tear-down requires a pair of FIN and ACK segments from each TCP endpoint.
1. (DeviceA) --> ACK/FIN --> (DeviceB)
2. (DeviceA) <-- ACK <-- (DeviceB)
3. (DeviceA) <-- ACK/FIN <-- (DeviceB)
4. (DeviceA) --> ACK --> (DeviceB)
You should also know that it is possible to terminate the connection by a 3-way handshake, when host A sends a FIN and host B replies with a FIN & ACK (merely combines 2 steps into one) and host A replies with an ACK. This is the most common method that I have seen.
Hope this helps
Billy