"Lowest cost" really depends on how many you want to make, and other factors such as power supplies, connectors and so on.
There are two main ways of doing this:
- Proxy mode Translator waits as a slave until device 2 asks for something. Then translator asks device 1 and returns answer. If this is quick enough, and the error behaviour is acceptable (what do you do if D1 doesn't answer quickly enough?), it is the simplest way.
- Asynchromous mode Translator constantly polls device 1. Whenever it likes, device 2 asks for latest data. This is more complex as multiple things can be happening at once.
If your baud rates are fixed, they are slow enough you can do one of them (9600) in pure software (bitbanging). In which case any Arduino hardware would work -- and many, many, other devices. Many engineers dislike software serial because it's very resource-intensive, but for a very simple only-one-task-and-nothing-else-at-all system, it can be extremely reliable and simple. The proxy-type translator would be like this.
The main thing to think about is whether the grounds are sharable or whether you need isolation.
- With isolation Use a ready-made module, perhaps from Digilent or Mikroe which are both excellent; many others are available.
- Without isolation can use almost anything, my recommendation would be 75176-pinout transceiver on an 8-pin DIP so you can replace and test.
My recommendation would be to get it working with a Raspberry Pi, which is easiest, until you know exactly how you want the translation function to work. Or perhaps with an Arduino, which is a little harder.
Once you've done that, then you can code it appropriate to the level of engineering robustness you require, perhaps with AVR-GCC or another toolchain.
If you were making a lot of them, you might get down to an ATTiny type processor and two RS-485 chips (plus a few bypass capacitors and whatever biasing resistors you might want.) At 2 metres and 19,200-baud, almost anything will work and you don't have to get very clever.